gpt4 book ai didi

http - Angular2 : detect error from HTTP post

转载 作者:行者123 更新时间:2023-12-03 08:12:04 24 4
gpt4 key购买 nike

我无法拦截来自HTTP帖子的错误

我的mservice的一部分(http发布方法)

addApplicationLink(applicationLink: ApplicationLink){
let body = JSON.stringify(applicationLink);
let requestHeaders = new Headers();
var headers = new Headers();
headers.set('Content-Type', ['application/json; charset=utf-8']);
let reqoptions = new RequestOptions({
headers: headers
});
return this._http.post(this._applicationLinksUrl + this._linkServicePath,body,{headers: headers});

在我的组件中:
addApplicationLink() {
//todo
this.addNewLink = false;
/* check if must be done after call real rest service */
//this.applicationLinks.push(this.applicationLinkAdd);
this._applicationLinkService.addApplicationLink(this.applicationLinkAdd)

.subscribe(data => {
this.applicationLinks.push(this.applicationLinkAdd)
},
error => {
// handle error
console.error('this an erreor ' + error.status)
}
)

当用户尝试添加两个相同的应用程序链接时,后端返回错误409
但是当我执行时,error.status在浏览器控制台中显示200
我也在浏览器控制台中看到了
XMLHttpRequest无法加载 http://localhost:7001 ......所请求的资源上没有'Access-Control-Allow-Origin' header 。因此,不允许访问源' http://localhost:3000'。响应的HTTP状态码为409。

rem:Http帖子是用json编写的,因此存在优先调用

您有想法拦截错误409吗?

最佳答案

实际上,您的服务器不会发回CORS header (缺少Access-Control-Allow-Origin' header )。这样可以防止浏览器向浏览器中的Angular2应用程序提供实际的409错误。

您需要先解决服务器上的问题,然后才能看到此409错误。

有关CORS的工作方式的更多详细信息,请查看本文:

  • http://restlet.com/blog/2015/12/15/understanding-and-using-cors/
  • 关于http - Angular2 : detect error from HTTP post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37524160/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com