我不能从http post
中删除错误我的mservice的一部分(http post方法)
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”标头。因此,不允许原点“http://localhost:3000”访问。响应的HTTP状态代码为409。
rem:Http post是用json创建的,因此有一个prefligth调用
你有想法拦截错误409吗?
答案 0 :(得分:2)
实际上,您的服务器不会发回CORS标头(缺少Access-Control-Allow-Origin'标头)。这可以防止浏览器在浏览器中向Angular2应用程序提供实际的409错误。
您需要首先修复服务器上的问题,然后才能看到409错误。
有关CORS如何工作的更多详细信息,您可以查看本文: