Axios POST请求抱怨跨源,但curl请求正常

时间:2018-02-18 04:26:17

标签: reactjs axios

 let url = 'http://localhost:4001/api/v1/sessions/new';
      axios.post(url, data)
        .then(function(resp) {
          console.log('resp returned is ' + JSON.stringify(resp));
        });

我在chrome console"

中看到了这个错误
  

无法加载http://localhost:4001/api/v1/sessions/new:响应   预检请求没有通过访问控制检查:否   '访问控制允许来源'标题出现在请求的上   资源。起源' http://localhost:4044'因此是不允许的   访问。响应的HTTP状态代码为405。

如果我只是尝试卷曲完全相同的API调用,它可以正常工作:

curl -d "email=hello@asdf.com&password=hello123" -X POST http://localhost:4001/api/v1/sessions/new

{"apiResponse":{"success":true,"errors":[]}}

为什么它适用于CURL而不适用于axios?

1 个答案:

答案 0 :(得分:1)

任何未在浏览器中运行的内容都不关心CORS。如果您希望自己的网络应用向服务器发出请求,请将Access-Control-Allow-Origin标题添加到服务器的响应中,其中最宽松的值为*

Access-Control-Allow-Origin: *