我試圖使用他們的Javascript API從Sprout Video獲得API響應。問題在於我在請求中遇到CORS問題。我可以在Postman中得到回覆,但不能在我的網站上。Ajax API調用導致CORS問題
我發現了一堆關於這個問題的問題,但到目前爲止還沒有找到適合我的方案的工作解決方案。我認爲添加標頭'Access-Control-Allow-Origin':'*'
本應該解決它,但它不。我也嘗試將dataType更改爲jsonp
,這導致了不同的錯誤,但仍然是錯誤。
任何人都可以告訴我哪裏出錯了嗎?
$.ajax({
type : 'GET',
url : 'https://api.sproutvideo.com/v1/videos/' + videoID,
headers: {
'SproutVideo-Api-Key':'ae463680265ac2ff7bf6255b3488d0c1',
'Access-Control-Allow-Origin':'*',
'Access-Control-Allow-Credentials': true,
},
dataType: 'json',
crossDomain: true,
success:function(result) {
console.log(result);
},
error:function(result) {
console.log(result);
}
});
'Access-Control-Allow-Origin'頭部需要位於響應頭部,而不是請求頭部。我不太瞭解CORS解決您的問題,但將該標題添加到請求中並不能解決您的問題。 –
據我查看http://sproutvideo.com/docs/api.html上的文檔,不支持直接從前端JavaScript代碼使用SproutVideo API--特別是試圖調用它從jQuery $ .ajax或XHR或Fetch API。在任何情況下從JavaScript代碼中調用它的文檔中都沒有提及。但無論如何,文檔中的假設似乎是你從後端代碼調用它 - 例如,從後端PHP或Ruby代碼 – sideshowbarker
對不起,是的,好像問題是必需的訪問控制 - 允許 - 原始響應頭不包括在API的* any *響應中,更具體地說,API沒有被配置爲正確響應CORS預檢OPTIONS請求,瀏覽器自動作爲CORS協議的一部分發送。有關詳細信息,請參閱https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests – sideshowbarker