我很困難的時間已經發出一個簡單的GET請求到第三方REST Api。我已經閱讀了一些教程和SO問題,但我無法完成它的工作。我收到兩個錯誤之一預檢Javascript CORS GET請求被阻止或無效
響應無效(重定向)
,或者(通過HTTPS)
迴應預檢要求未通過訪問控制檢查:無「 Access-Control-Allow-Origin'標題出現在請求的資源上。因此不允許訪問原產地'https://localhost:8433'。
關於第二條消息:這是否只是服務器不支持CORS的問題?
我的代碼:
var xmlHttp = new XMLHttpRequest();
var url = 'https://inspirehep.net/record/451647?of=recjson&ot=recid,number_of_citations,authors,title'; //http or https, tried both
/*
doing sth with response here like populate dropdown etc.
*/
xmlHttp.open('GET', url, true);
xmlHttp.setRequestHeader("Access-Control-Allow-Headers", "Content-Type, X-Requested-With, Cache-Control");
xmlHttp.setRequestHeader("Content-Type", "application/json");
xmlHttp.setRequestHeader("Access-Control-Allow-Origin", '*');
xmlHttp.setRequestHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
xmlHttp.setRequestHeader("Access-Control-Allow-Credentials", "true");
xmlHttp.send();
所有的應用程式的node.js服務器(本地主機)和上面的腳本上運行的被包括以.html視圖單獨的文件中。
我可以正確地從這個API的web瀏覽器,提琴手,郵遞員等獲得json響應。我也嘗試過不同的API(例如Openweather API),認爲這是服務器配置的問題,但結果是一樣的。
我會感謝任何幫助 - 也許我只是誤解了關於CORS的一些東西。
CORS標頭不是您可以在您的請求中發送的東西。服務器必須使用標題進行響應。 – migg
「這只是服務器不支持CORS的問題嗎?」 - 是的。 – Quentin
感謝您的回答,我認爲可能是這樣。 – learningHappily