我创建了一个充当JSON结果的aspx文件。
Response.Clear()
Response.ContentType = "application/json; charset=utf-8"
我有另一个页面(另一个域)读取该JSON。但是在调用JSON值时我得到了syntax error: invalid label
。
$.getJSON( "http://a.com/json.aspx?format=json&jsoncallback=?" , function(data) {
alert(data);
});
}
答案 0 :(得分:1)
您需要服务器输出JSONP,不是 JSON。 JSONP与众不同。当服务器位于与客户端不同的域上时使用JSONP。
JSONP实际上只是一个JavaScript文件,因此它应该与Content-type: text/javascript
一起提供。在提供JSONP时,您应该将JSON包装为jsoncallback
。
因此,您的Web服务器应该输出类似于:
的内容jQuery12345({"name":"joe","age":22})
其中jQuery12345
是查询字符串中jsoncallback
参数的值,它将由jQuery自动设置。
$.getJSON( "http://a.com/json.aspx?format=json&jsoncallback=?" , function(data) {
alert(data);
});
jQuery将自动用值替换?
。
有关JSONP的更多信息:http://en.wikipedia.org/wiki/JSONP