Я бы порекомендовал начать с вашей выдержки, которая работает, а затем замедлить добавление обратно текста из частей, которые не работают, пока вы не выясните, какой бит вызывает проблемы. Синтаксис JSON очень и очень прост, я был бы удивлен, если бы у jQuery были с этим проблемы.
Я задавался вопросом о ваших тегах "script" и о "функции" (думая: "Интересно, они вызывают защиту от эксплойтов или что-то в этом роде?"), Но быстрая проверка с помощью jQuery 1.4.1 показала, что это не так. 1005 *
Редактировать
Проблема в другом месте, следующее работает с 1.4.1 или 1.4.2 (не работало с 1.3.2, но это потому, что 1.3.2 не имеет jQuery.parseJSON
& ndash; smacks head). Пройдите по коду с помощью отладчика и проверьте переменную data
, чтобы увидеть, что она содержит.
Тестовая страница:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
<title>Test Page</title>
<style type='text/css'>
body {
font-family: sans-serif;
}
</style>
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js'></script>
<script type='text/javascript'>
(function() {
$(document).ready(pageInit);
function pageInit() {
$('#btnGo').click(go);
}
function go() {
$.ajax({
url: "test.json",
success: function(data) {
alert(data);
var obj = jQuery.parseJSON(data);
alert("obj.html = " + obj.html);
}
});
}
})();
</script>
</head>
<body><div>
<input type='button' id='btnGo' value='Go'>
</div></body>
</html>
test.json:
{"html":"form is NOT valid<form id=\"articleform\" enctype=\"application\/x-www-form-urlencoded\" method=\"post\" action=\"\"><dl class=\"zend_form\">\n<dt id=\"title-label\"> <\/dt>\n<dd id=\"title-element\">\n<input type=\"text\" name=\"title\" id=\"title\" value=\"Artikel K\"><\/dd>\n<dt id=\"articleFormSubmitted-label\"> <\/dt>\n<dd id=\"articleFormSubmitted-element\">\n<input type=\"hidden\" name=\"articleFormSubmitted\" value=\"1\" id=\"articleFormSubmitted\"><\/dd>\n<dt id=\"submit-label\"> <\/dt><dd id=\"submit-element\">\n<input type=\"submit\" name=\"submit\" id=\"submit\" value=\"Bewaar artikel\" onclick=\"this.value='Bezig...';\"><\/dd><\/dl><\/form><script type=\"text\/javascript\">\n\t $(\"#articleform\").submit(function(){\n $.post(\"\/admin\/ajax\/contenttree\/node\/9\/ajaxtarget\/ajaxContainer\", $(\"#articleform\").serialize(), function(html){$(\"#ajaxContainer\").html(html);} );\n\t\t return false;\n\t });\n\n <\/script>","newNodeName":""}