2013-10-03 4 views
44

は、私が間違って何をやっている私のコード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); 
     } 
    }); 

のですか?ここに何かを追加したり変更したりする必要がありますか? ご協力いただければ幸いです。フィドルの作業 おかげ

+0

でこの

var data = '{"rut" : "' + $('#cb_rut').val() + '" , "email" : "' + $('#email').val() + '" }'; var data = JSON.parse(data); $.ajax({ type: 'GET', url: 'linkserverApi', success: function(success) { console.log('Success!'); console.log(success); }, error: function() { console.log('Uh Oh!'); }, jsonp: 'jsonp' }); 

と編集ヘッダーを実行します、それはJSONだ 'GET' –

+2

をあなたのURLにJSONPではありません。 – Johan

+0

'async:false'はJSONPでは動作しません。なぜあなたは 'jsonpCallback'を使用していて、' callback =? '' crossDomain'はクロスドメインリクエストには必要ありません(皮肉なのですか?) –

答えて

51

:それはすべてのリモートサービスをサポートするように思わだから

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にコールバックを設定する必要がありました。私はjsonpがほしいと指定するようにURLを変更しました。

+415

あなたのユーザー名が「Jason P」であることは非常に皮肉なことです。 :) – JaredCubilla

+13

ちょうど明らかである、それは純粋に素敵な*偶然の一致です;)しかしねえ、[何を知っていますか](https://www.youtube.com/watch?v=Jne9t8sHpUc)。 – dbro

+2

'callback'という名前の関数をどこかに定義しなければなりませんか? –

18

JSONではなく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スレッドの数百人を見つけるでしょう。

+0

私がしなければならないことは、現在URLに示されているように、JSONを想定したURLにJSONPを指定することだけです。ありがたいことに、サードパーティはリンクに基づいてJSONPをサポートしています –

-2

私はタイプの前にスペースを削除してください応答

'Access-Control-Allow-Methods' , 'GET, POST, PUT, DELETE'

'Access-Control-Max-Age' , '3628800'

'Access-Control-Allow-Origin', 'websiteresponseUrl'

'Content-Type', 'text/javascript; charset=utf8'

関連する問題