[英]What's the difference between a POST request run with Node and a request sent with React/Chrome?
我正在測試Robinhood API,我要做的第一件事就是使用API登錄。 運行節點login.js時,我可以使用以下代碼登錄
var axios = require('axios')
axios.post('https://api.robinhood.com/api-token-auth/', {
username: 'email@email.com',
password: '********'
}, {
headers: {'Access-Control-Allow-Origin': '*'}
}).then(function (response) {
console.log(response.data);
})
但是,當我在瀏覽器中使用React嘗試相同的代碼時,會收到No 'Access-Control-Allow-Origin'
錯誤。 如果我在Chrome中啟用Access-Control-Allow-Origin
,則不會發生該錯誤,並且可以登錄。
我已經包含了Access-Contrl-Allow-Origin
標頭。 問題似乎是Node和React / Chrome之間的差距?
允許代碼在Node上運行但不能在React / Chrome上運行的是什么?
瀏覽器在POST請求之前發送安全性要求的OPTIONS請求,以查找其請求的服務器是否打算從瀏覽器當前所在的域接收請求。 瀏覽器拒絕通過使用適當的Access-Control*
標頭響應OPTIONS請求,將請求發送到尚未選擇加入流量的服務器。
從節點repl運行沒有這種限制。
這個問題會更詳細: Chrome瀏覽器如何確定何時發送選項?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.