2012-10-17 26 views
1

我開發了一個使用JSON服務的移動網站。我使用JSONP,因爲它是跨域的。它正在工作,突然爆發,我無法理解爲什麼。以下是我可以在瀏覽器中檢查:AJAX上的意外令牌錯誤JSONP Requeset

我的JavaScript調用:

$.ajax({ 
url: apiBaseURL + "getoperators?appKey=" + appKey, 
dataType: 'jsonp', 
success: function(data) { 
    console.log(data); 
}, 
    error: function(jqXHR, textStatus, errorThrown) {    } 
}); 

當我認爲它似乎正確如下形成的響應:

{ 「GetOperatorsResult」: {「錯誤」:「」,「結果」:[{「City」:「Cape Town」,「IsPublic」:true,「Mode」:「Bus」,「Name」:「Golden Arrow」},{「City 「:」開普敦「,」IsPublic「:是,」Mode「:」Shuttle「,」Name「:」Jammie Shuttle「},{」City「:」Cape Town「,」IsPublic「 :「火車」,「名稱」:「地鐵」},{「城市」:「開普敦」,「IsPubl IC 「:真正的」 模式 「:」 公交車」, 「姓名」: 「MyCiti」}], 「狀態」: 「成功」}}

這裏是網絡審計:

請求URL :HTTP://api.wimt.co.za/v1/json/public.svc/getoperators的AppKey = EB478338-73C7-483F-8AB4-B4DE2219D4DC &回調= jQuery18208015921225305647_1350479608882 & _ = 1350479608950 請求方法:GET 狀態代碼:200 OK 請求頭文查看源代碼 接受:/ Accept-Charset:ISO-8859-1,utf-8; q = 0.7,*; q = 0.3 Accept-Encoding:gzip,deflate,sdch Accept-Language:zh-CN,en; q = 0.8 Cache-Control:max-age = 0 連接:保持活動 Host:api.wimt.co.za Referer:http:// localhost:8300/index.html User-Agent:Mozilla/5.0(Windows NT 6.1; WOW64)爲AppleWebKit/537.4(KHTML,例如Gecko)鉻/ 22.0.1229.94 Safari瀏覽器/ 537.4 查詢字符串Parametersview URL編碼 APPKEY:EB478338-73C7-483F-8AB4-B4DE2219D4DC 回調:jQuery18208015921225305647_1350479608882 _:1350479608950 響應Headersview源 Content-Length:353 Content-Type:application/json;字符集= UTF-8 日期:星期三,2012年10月17日13點13分43秒GMT 服務器:Microsoft-IIS/7.5 X供電,通過:ASP.NET

我們推出什麼東西前1天,其工作完美已打破,我不能爲我的生活制定出什麼。錯誤可能在web.config中,但我在那裏擁有所有正確的標題/終結點。

有人請幫忙。謝謝!

+0

你在哪個位置出現錯誤? –

+0

它在錯誤功能中反對成功。我收到以下回應:錯誤:jQuery18208741367822512984_1350482142524未被稱爲parsererror [對象對象] – user1434739

+0

是的,在什麼位置得到解析錯誤?我會認爲這是第一個字符,他已經發布了答案 –

回答

2

看來,遠程API不再發送JSONP,而是純JSON。在一個有效的JSONP調用響應必須被包裹在回調名稱:

jQuery18208015921225305647_1350479608882({"GetOperatorsResult":{"Error":"","Results":[{"City":"Cape Town","IsPublic":true,"Mode":"Bus","Name":"Golden Arrow"},{"City":"Cape Town","IsPublic":true,"Mode":"Shuttle","Name":"Jammie Shuttle"},{"City":"Cape Town","IsPublic":true,"Mode":"Train","Name":"Metrorail"},{"City":"Cape Town","IsPublic":true,"Mode":"Bus","Name":"MyCiti"}],"Status":"Success"}}) 

您應該與API的所有者或以瞭解如何指定JSONP調用閱讀文檔。

+0

我在服務器端更改了哪些內容以防止發生這種情況? – user1434739

+0

它不在你身邊。它在託管API的服務器上發生了變化 - 「http:// api.wimt.co.za」。 –

+0

我們發現了!端點綁定指向默認流,而不是JSON流,它啓用了跨域腳本訪問。感謝指針;) – user1434739