更新:我正在发布 HTML FORM 数据,但希望收到 JSON 数据。我没有尝试发布 JSON 数据。
我正在尝试通过执行 HTML FORM POST 请求获取 JSON 响应。当使用简单的 HTML FORM POST 请求(即不是 AJAX)时,我已成功收到 JSON。我从 HTML FORM POST 得到的 JSON 响应是这样的:
{"success":true,"data":1234567}
当我尝试使用 jQuery 的 .ajax() 处理请求和响应时,就会出现问题。
$.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 告诉我以下有关 POST 请求的 HTTP 响应的信息:
Response Headers
Cache-Control private
Content-Length 31
Content-Type application/json; charset=utf-8
...
看来 31 字节的数据正在发送。然而,当调试实际的 Javascript 时,错误函数被调用,xhr 对象是这样的:
Object { readyState=0, status=0, statusText="error"}
我知道 jQuery.ajax() 文档指出“在 jQuery 1.4 中,JSON 数据以严格的方式解析;任何格式错误的 JSON 都会被拒绝并引发解析错误。”不过,我相信我的 JSON 是有效的,因为我已经在 jsonlint.com 上检查过它。
还有什么可能出问题吗?
最佳答案
在我看来,您遇到了服务器错误。我会检查响应的状态代码并修复导致请求在服务器上失败的任何原因。
关于json - jQuery 不处理来自 AJAX POST 的 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6848596/