繁体   English   中英

使用Node运行的POST请求和使用React / Chrome发送的请求之间有什么区别?

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM