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?
答案 0 :(得分:1)
任何未在浏览器中运行的内容都不关心CORS。如果您希望自己的网络应用向服务器发出请求,请将Access-Control-Allow-Origin
标题添加到服务器的响应中,其中最宽松的值为*
:
Access-Control-Allow-Origin: *