0

私はajax呼び出しを行うjQuery(1.8.2)を備えた単純なWebサイトを持っています:

$.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);
  }
});

Webページには次のヘッダーがあります。

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\"]')"

JSONPでは、jQueryは実行可能なスクリプトコードを返すことを期待しているため、JSONだけではありません。

于 2012-12-18T20:47:27.930 に答える