web-dev-qa-db-ja.com

「Uncaught SyntaxError:Unexpected token:」を示すJSONP呼び出し

ここに私のコードがあります

$.ajax({
        url: 'https://api.flightstats.com/flex/schedules/rest/v1/json/flight/AA/100/departing/2013/10/4?appId=19d57e69&appKey=e0ea60854c1205af43fd7b1203005d59&callback=?',
        dataType: 'JSONP',
        jsonpCallback: 'jsonCallback',
        type : 'GET',
        async: false,
        crossDomain: true,
        success: function(data) {
            console.log(data);
        }
    });

私は何を間違えていますか?ここで何かを追加または変更する必要がありますか?任意の助けをいただければ幸いです。ありがとう

46
Katakam Nikhil

作業フィドル:

http://jsfiddle.net/repjt/

$.ajax({
    url: 'https://api.flightstats.com/flex/schedules/rest/v1/jsonp/flight/AA/100/departing/2013/10/4?appId=19d57e69&appKey=e0ea60854c1205af43fd7b1203005d59',
    dataType: 'JSONP',
    jsonpCallback: 'callback',
    type: 'GET',
    success: function (data) {
        console.log(data);
    }
});

リモートサービスがサポートしているように見えるので、コールバックを手動でcallbackに設定する必要がありました。また、URLを変更して、jsonpが必要であることを指定しました。

52
Jason P

JSONPではなくJSONにアクセスしようとしています。

ソースの違いに注意してください。

https://api.flightstats.com/flex/schedules/rest/v1/json/flight/AA/100/departing/2013/10/4?appId=19d57e69&appKey=e0ea60854c1205af43fd7b1203005d59&callback=

実際のJSONP(ラッピング関数):

http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=processJSON&tags=monkey&tagmode=any&format=json

JSON + CORS /クロスドメインポリシーを検索すると、このまさにトピックに関する数百のSOスレッドが見つかります。

18
Johan