0

我有一个使用 jQuery (1.8.2) 进行 ajax 调用的简单网站:

$.ajax({
  url: 'http://localhost:1337?callback=?',
  dataType: 'jsonp',
  crossDomain: true,
  success: function(a,b,c) {
    console.log('success',a,b,c);
  },
  error: function(a,b,c) {
    console.log('error',a,b,c);
  }
});

该网页具有标题:

Access-Control-Allow-Origin *
Access-Control-Expose-Headers Access-Control-Allow-Origin
Access-Control-Allow-Headers *

返回的ajax是:

[{"a":"b"}]

(也通过 JSONlint), json 被用作application/json

但是我得到一个解析错误:

'error'
[object]
'parsererror'
Error
  arguments: undefined
  get stack: function () { [native code] }
  message: "jQuery18209882410678546876_1355861965752 was not called"
  set stack: function () { [native code] }
  type: undefined
4

1 回答 1

0

你将不得不返回

$_GET["callback"] . "('[\"a\":\"b\"]')"

而不仅仅是 JSON,因为使用 JSONP jQuery 期望返回可执行的脚本代码。

于 2012-12-18T20:47:27.930 回答