我想向API發送GET請求,但是當我在代碼中添加自定義標頭時,發生了奇怪的事情。 請求方法在到達Web服務器時變爲OPTIONS的某處。取自定義標題的GET請求ReactJS
但是,當我做同樣沒有標題它將是一個GET類型。 當我使用應用程序郵遞員(API開發工具)請求正常工作!
請求代碼:
let token = this.generateClientToken(privateKey, message);
let myheaders = {
"appID": appID,
"authorizationkey": token
}
fetch('http://localhost:8080/api/app/postman', {
method: "GET",
// body: JSON.stringify(''),
headers: myheaders
}).then(function(response) {
console.log(response.status); //=> number 100–599
console.log(response.statusText); //=> String
console.log(response.headers); //=> Headers
console.log(response.url); //=> String
return response.text()
}, function(error) {
console.log(error.message); //=> String
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
服務器日誌輸出中(帶有報頭):
worker_1 | 172.18.0.4 - 17/Mar/2017:15:47:44 +0000 "OPTIONS /index.php" 403
web_1 | 172.18.0.1 - - [17/Mar/2017:15:47:44 +0000] "OPTIONS /api/app/postman HTTP/1.1" 403 5 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:54.0) Gecko/20100101 Firefox/54.0" "-"
服務器日誌輸出(無報頭):
worker_1 | 172.18.0.4 - 17/Mar/2017:16:01:49 +0000 "GET /index.php" 403
web_1 | 172.18.0.1 - - [17/Mar/2017:16:01:49 +0000] "GET /api/app/postman HTTP/1.1" 403 5 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:54.0) Gecko/20100101 Firefox/54.0" "-"
添加了NPM模塊獲取額外的瀏覽器的支持:
https://github.com/github/fetch#obtaining-the-response-url
https://github.com/taylorhakes/promise-polyfill
我失去的是什麼?這一切對我來說都是正確的。
我使用Firefox開發版與NPM運行它來測試Reactjs應用程序啓動
檢查了一下..我幾乎可以肯定它與CORS有關:http:// stackoverflow。COM /問題/ 27915191 /如何 - 做最鉻瀏覽器的決定,當以發送選項 –