如何解决React JS - 发送 POST 请求时 CORS 缺少允许标头
我在向 REST-API 发送 POST 请求时遇到一些问题。
问题是,当我从 React 应用程序发送它时,它会在 Firefox 的调试控制台中显示此错误。
有趣的是,当用邮递员发送请求时它工作得很好。
这是我用来发出请求的代码:
let apiURL = API_URL_BASE + "/api/authenticate"
let requestBody = JSON.stringify(
{
"username": this.getEnteredLoginUsername(),"password": this.getEnteredLoginPassword()
}
);
let headerData = new Headers();
headerData.append('Accept','*');
headerData.append("Access-Control-Allow","*");
headerData.append('Content-Type','application/json');
headerData.append('Access-Control-Allow-Origin','*');
headerData.append("Access-Control-Allow-Methods","GET,HEAD,OPTIONS,POST,PUT");
headerData.append("Access-Control-Allow-Headers","*");
let requestOptions = {
method: 'POST',mode: 'cors',redirect: 'follow',body: requestBody,headers: headerData
}
this.setState({loadingData: true});
fetch(apiURL,requestOptions).then( response => {
let responseStatus = response.status;
response.json().then( responseJSON => {
});
});
希望有人能帮我解决这个问题。
这是 firefox 控制台显示的错误:Image
解决方法
您似乎确实有来自客户端(即浏览器)的正确请求标头,但是您托管 API
的服务器还必须向客户端发送响应,表明它允许跨域请求,否则浏览器将不会继续处理您的请求。从服务器设置 cors 标头将取决于您为后端使用的框架。实际上,您需要将在此处添加的那些 cors 标头添加到服务器代码中。
示例响应标头如下所示:
HTTP/1.1 200 OK
Date: Mon,01 Dec 2008 00:23:53 GMT
Server: Apache/2
Access-Control-Allow-Origin: * (Note: * means this will allow all domains to request to your server)
Keep-Alive: timeout=2,max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: application/xml
对于快递,您可以按照此link。
更多关于 CORS here
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。