0

我创建了一个用作 JSON 结果的 aspx 文件。

Response.Clear()
Response.ContentType = "application/json; charset=utf-8"

我有另一个页面(另一个域)读取该 JSON。但是我syntax error: invalid label在调​​用 JSON 值时得到了。

$.getJSON( "http://a.com/json.aspx?format=json&jsoncallback=?" , function(data) {

       alert(data);
    });
  }
4

1 回答 1

1

您需要服务器输出 JSONP,而不是JSON。JSONP 是不同的。当服务器与客户端位于不同的域时,使用 JSONP。

JSONP 实际上只是一个 JavaScript 文件,因此应该使用Content-type: text/javascript. 提供 JSONP 时,您应该将 JSON 包装在jsoncallback.

因此,您的 Web 服务器应输出类似于以下内容的内容:

jQuery12345({"name":"joe","age":22})

wherejQuery12345是查询字符串中参数的值,jsoncallbackjQuery会自动设置。

$.getJSON( "http://a.com/json.aspx?format=json&jsoncallback=?" , function(data) {
    alert(data);
});

jQuery 会自动将替换为?一个值。

有关 JSONP 的更多信息:http ://en.wikipedia.org/wiki/JSONP

于 2013-01-16T14:50:28.650 回答