Обновлено: Я публикую данные HTML FORM, но ожидаю получения данных JSON. Я не пытаюсь отправить данные JSON.
Я пытаюсь получить ответ JSON от выполнения запроса POST HTML FORM. Я успешно получил обратно JSON при использовании простого запроса POST HTML FORM (т.е. не AJAX). Мой JSON-ответ от HTML POST FORM выглядит так:
{"success":true,"data":1234567}
Проблема возникает, когда я пытаюсь обработать запрос и ответ с помощью .ajax () jQuery.
$.ajax({
type: "POST",
url: URL,
data: data1,
dataType: "json",
success: function(data, textStatus, jqXHR) {
alert ("success");
},
error: function(xhr, status, error) {
alert ("Error: " + error);
}
});
После запуска приведенного выше кода и отладки в Firebug, похоже, что запрос POST выполняется, но что-то идет не так при обработке ответа. Firebug сообщает мне следующее относительно ответа HTTP на запрос POST:
Response Headers
Cache-Control private
Content-Length 31
Content-Type application/json; charset=utf-8
...
Похоже, что отправляется 31 байт данных. Однако при отладке реального Javascript вызывается функция error и объект xhr выглядит так:
Object { readyState=0, status=0, statusText="error"}
Я знаю, что в документе jQuery.ajax () говорится, что «в jQuery 1.4 данные JSON анализируются строго; любой искаженный JSON отклоняется и выдается ошибка синтаксического анализа». Однако я считаю, что мой JSON действителен, поскольку я проверил его на jsonlint.com.
Что еще может пойти не так?