jQuery: Оцените сценарий в ajax ответе

Ответы XML от моего веб-приложения имеют и HTML для добавления к странице, И у некоторых есть сценарий для выполнения.

Я пытаюсь передать XML обратно от своего веб-приложения как:

<?xml version="1.0"?>
<doc>
  <html-to-insert>
    <![CDATA[<p>add me to the page</p>]]>
  </html-to-insert>
  <script>
    <![CDATA[ alert('execute me'); ]]>
  </script>
</doc>

Что я делаю, теперь привязывается <html-to-insert> и <script> CDATA, вставляя HTML в страницу и eval'ing <script>.

Я ищу критику на своем подходе. Какие-либо предложения от кого-либо?

5
задан j0k 1 April 2015 в 16:07
поделиться

3 ответа

Вы бы предпочли отправить JSON, это намного проще для интерпретации. Пример:

// Suppose your response is a string:
// { html: "<p>add me to the page</p>, script:"alert('execute me');" }
var obj = eval( "(" + response + ")" ) ;
eval( obj.script ) ;
2
ответ дан 13 December 2019 в 05:35
поделиться

Вы можете использовать библиотеку jQuery, чтобы сделать запрос XML к вашему бэкэнду, а также разобрать его

$(document).ready(function()
{
  $.ajax({
    type: "GET",
    url: "your/url/that/returns/xml",
    dataType: "xml",
    success: function (xml) {
      // xml contains the returned xml from the backend

      $("body").append($(xml).find("html-to-insert").eq(0));
      eval($(xml).find("script").text());
    }
  });
});

Вы можете узнать больше о jQuery здесь и здесь

Я не тестировал его, но он должен работать в соответствии с этой статьей.

8
ответ дан 13 December 2019 в 05:35
поделиться

Для этой цели лучше было бы использовать JSON, чем XML imho.

0
ответ дан 13 December 2019 в 05:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: