jQuery不会从AJAX查询解析我的JSON
我无法解析使用jQuery.ajax()从我的服务器返回的一些JSON数据
要执行我使用的AJAX:
$.ajax({
url: myUrl,
cache: false,
dataType: "json",
success: function(data){
...
},
error: function(e, xhr){
...
}
});
如果我返回一组项目,那么它工作正常:
[ { title: "One", key: "1" }, { title: "Two", key: "2" } ]
成功函数被调用并接收正确的对象。
但是,当我试图返回一个单一的对象时:
{ title: "One", key: "1" }
错误函数被调用,xhr包含'parsererror'。 我已经尝试在将服务器上的JSON发送到服务器之前在服务器上的括号中包装JSON,但它没有区别。 然而,如果我将内容粘贴到Javascript中的字符串中,然后使用eval()函数,它会完美地评估它。
任何想法我做错了什么?
安东尼
您的服务器是否将数据作为内容类型"*/json"
? 如果不是,请相应地修改响应标头。 例如,发送"application/json"
应该没问题。
根据json.org规范,你的回报是无效的。 名字总是被引用的,所以你应该回来
{ "title": "One", "key": "1" }
和
[ { "title": "One", "key": "1" }, { "title": "Two", "key": "2" } ]
这可能不是你的设置的问题,因为你说其中一个现在可以工作,但是它应该被修正以保证正确性,以防将来需要切换到另一个JSON解析器。
JSON字符串用双引号括起来; 单引号不是有效的替代品。
{"who": "Hello World"}
是有效的,但这不是...
{'who': 'Hello World'}
虽然不是OP的问题,但认为值得注意其他人登陆这里。
链接地址: http://www.djcxy.com/p/1249.html