java – Angular 5:预检的响应具有无效的HTTP状态代码403
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Angular 5:预检的响应具有无效的HTTP状态代码403,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1698字,纯文字阅读大概需要3分钟。
内容图文
![java – Angular 5:预检的响应具有无效的HTTP状态代码403](/upload/InfoBanner/zyjiaocheng/751/aed66182bd3241d1b5bac4c4984ba131.jpg)
当我向服务器发送POST请求时,我收到一个错误:
Failed to load http://localhost:8181/test: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access. The response had HTTP status code 403.
后端是用Java Spring编写的.
我创建测试的方法:
createTest() {
const body = JSON.stringify({
'description': 'grtogjoritjhio',
'passingTime': 30,
'title': 'hoijyhoit'
});
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Accept': 'application/json'
}
)
};
return this._http.post(`${this._config.API_URLS.test}`, body, httpOptions)
.subscribe(res => {
console.log(res );
}, error => {
console.log(error);
});
}
Get方法有效,但Post没有.他们都在Swagger和Postman工作.我多次更改了POST方法.我的代码中的标题不起作用,但我解决了他们扩展到谷歌浏览器的问题.只有一个错误:
Response for preflight has invalid HTTP status code 403.
在我看来,这不是角度问题.请告诉我我或我的朋友(编写后端)如何解决这个问题.
解决方法:
问题:
对于任何Cross-Origin POST请求,浏览器将首先尝试进行OPTIONS调用,当且仅当该调用成功时,它才会进行真正的POST调用.但在您的情况下,OPTIONS调用失败,因为没有’Access-Control-Allow-Origin’响应头.因此实际的呼叫将不会完成.
SLOUTION:
因此,要使其工作,您需要在服务器端添加CORS配置以设置Cross-Origin请求所需的相应头,如:
> response.setHeader(“Access-Control-Allow-Credentials”,“true”);
> response.setHeader(“Access-Control-Allow-Headers”,“content-type,if-none-match”);
> response.setHeader(“Access-Control-Allow-Methods”,“POST,GET,OPTIONS”);
> response.setHeader(“Access-Control-Allow-Origin”,“*”);
> response.setHeader(“Access-Control-Max-Age”,“3600”);
内容总结
以上是互联网集市为您收集整理的java – Angular 5:预检的响应具有无效的HTTP状态代码403全部内容,希望文章能够帮你解决java – Angular 5:预检的响应具有无效的HTTP状态代码403所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。