2015-09-10 24 views
1

下列調用失敗:回撥=?在AJAX調用的意義

https://api.twitch.tv/kraken/streams/MedryBW?client_id=pzaazcrab42neperff77e2elkrqrj4y" 

這一個傳遞:

https://api.twitch.tv/kraken/streams/MedryBW?client_id=pzaazcrab42neperff77e2elkrqrj4y&callback=?" 

請問這個回調=?做什麼?

+1

它使它能夠使用[JSONP](https://en.wikipedia.org/wiki/JSONP),這是一種繞過[同源策略]的方法(https://en.wikipedia.org/wiki/同origin_policy)。 –

+0

PROTIP:發佈問題時,只說「失敗」並不能幫助我們幫助你。您應該顯示您的代碼以及您在控制檯中看到的任何錯誤消息。你應該解釋「失敗」的含義;你期望代碼做什麼與它做什麼。 –

回答

2

callback=?是jQuery識別的URL的「魔術」部分,它改變了請求的形式。

URL中的回調參數用於JSONP請求中,因此jQuery將請求從使用XHR(XMLHTTPRequest)更改爲使用腳本元素。它還將URL中的callback=?更改爲使用唯一函數名稱,如callback=callback87624827346

由於請求未使用XHR,因此不受同一來源策略的約束。這就是爲什麼您可以提出請求(不需要在服務器上設置CORS以使瀏覽器允許請求)。

+0

真棒解釋... –