2013-10-03 22 views
44

這裏是我的代碼JSONP來電顯示 「未捕獲的SyntaxError:意外的標記:」

$.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

請鍵入之前刪除的空間: 'GET', –

+2

這是JSON,在您的網址不JSONP。 – Johan

+0

'異步:false'不適用於JSONP。你爲什麼要使用'jsonpCallback'和'回調=?''不需要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,因爲這是所有遠程服務似乎支持。我還更改了url以指定我想要jsonp。

+415

我覺得你的用戶名是「Jason P」非常具有諷刺意味。 :) – JaredCubilla

+13

只要是明確的,那純粹是一個可愛的巧合* *;)但是,嘿,[我知道什麼(https://www.youtube.com/watch?v=Jne9t8sHpUc)。 – dbro

+2

你必須定義一個名爲'某處callback'功能? –

18

你試圖訪問一個JSON,而不是JSONP。

通知你的源之間的區別:

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中指定JSONP,就像當前在URL中顯示的那樣。謝天謝地,第三方支持基於鏈接的JSONP –

-2

我在響應運行此

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' 

}); 

和編輯頁眉

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

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

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

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

相關問題