Ответы 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>
.
Я ищу критику на своем подходе. Какие-либо предложения от кого-либо?
Вы бы предпочли отправить 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 ) ;
Вы можете использовать библиотеку 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 здесь и здесь
Я не тестировал его, но он должен работать в соответствии с этой статьей.
Для этой цели лучше было бы использовать JSON, чем XML imho.