[英]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.