Angular-JSON放置和删除返回403(但邮递员应用程序运行良好)

时间:2019-01-13 10:48:21

标签: json angular typescript

我有一个rest api,可以使用post和get请求。但是,当我要使用放置和删除请求时,它会返回错误403。而且,当我尝试使用Postman应用程序(用于JSON请求的应用程序)放置和删除时,一切都很好。我真的很困惑。让我用一些屏幕截图来证明问题。 (出于安全原因,我已审查了这些链接,对此表示抱歉)


Chrome控制台; enter image description here 邮递员应用程序; enter image description here


任何我的输入代码;

  /** PUT: update the firm on the server */
updateFirm (firm: Firm): Observable<any> {
 console.log(firm);

 return this.http.put(this.firmUrl+"put/"+String(firm.id), firm, httpOptions).pipe(
   tap(_ => console.log(`updated firm id=${firm.id}`)),
   catchError(this.handleError<any>('updateFirm'))
 );
}

如果您能帮助我,我将不胜感激。祝你有美好的一天

3 个答案:

答案 0 :(得分:2)

我遇到了类似的情况,发现Angular 2在POST完成之前执行了OPTIONS方法! “访问控制允许方法”中缺少选项。

如果我检查您的日志,那么我认为您还应该允许OPTIONS: 以angular和perl作为后端,我不得不允许以下操作:

-“ Access-Control-Allow-Methods” =>'GET,POST,PATCH,DELETE,PUT,OPTIONS',

答案 1 :(得分:1)

这似乎是一个CORS错误,您正在执行从本地主机上的本地计算机到其他URL后端的http请求。解决此问题的唯一方法是在后端允许来自不同来源的请求。或者可以在本地计算机上运行后端。

答案 2 :(得分:1)

您的问题是有关 HTTP OPTIONS 请求的 CORS

实际上,在执行HTTP PUT请求之前,您的客户端必须发出一个OPTIONS请求,以便添加包含您的标头的httpOptions变量。

因此,您必须在服务器的代码中授权执行OPTIONS请求。