【问题标题】:Response for preflight has invalid HTTP status code 403 (Angular 4) [duplicate]预检响应具有无效的 HTTP 状态代码 403(Angular 4)[重复]
【发布时间】:2018-04-11 10:40:28
【问题描述】:

我尝试在 Angular (4.2.4) 中执行 CORS 请求,并且在使用 GET 方法时一切正常。但是在执行 POST 请求时,我收到此错误: Response for preflight has invalid HTTP status code 403 有标题截图:

【问题讨论】:

  • 不是后端问题。我认为是 API 服务问题
  • 添加选项请求的通配符 url 以使用您将手动发送的允许标头解析 cors,允许方法获取 post put delete & allow origin to your host 或 * 。例如。 /api/web/v2/*的选项方法

标签: angular cors


【解决方案1】:

这是预期的行为。 由于您的请求不是一个简单的请求,因此浏览器将预检请求作为 OPTIONS 方法进行。

您的 API 服务器不支持此方法。

解决方案是在您的 API 中添加对 OPTIONS 方法的支持。当请求标头中有 OPTIONS 方法和 'origin' 标头时,响应带有“Access-Control-Allow-Origin”、“Access-Control-Allow-Methods”、“Access-Control-Allow-Headers”标头的空白内容。

作为 PHP 的实现,在这里找到了答案:Backbone & Slim PHP - Access-Control-Allow-Headers - Can GET information, can't POST it?

一旦客户端浏览器收到带有适用的 access-control-allow-* 标头的 OPTIONS 响应,它将引发以下 POST 请求。

【讨论】:

    猜你喜欢
    • 2016-02-08
    • 2018-09-22
    • 2016-04-14
    • 2018-01-25
    • 2018-04-05
    • 2018-06-18
    • 2017-08-11
    • 2018-09-30
    • 1970-01-01
    相关资源
    最近更新 更多