【问题标题】:Angular 6 - Interceptor Preflight (CORS)Angular 6 - 拦截器预检 (CORS)
【发布时间】:2018-08-07 04:41:21
【问题描述】:

我正在使用拦截器在每个请求中激活微调器。

拦截器示例:

 return next.handle(req).do(evt => {
      if (evt instanceof HttpResponse) {
         this.spinnerService.close();
      }
});

req.method 没有返回 OPTIONS。请求在浏览器中是 POST 和 OPTIONS,但在控制台日志中打印时都是相同的。

浏览器:请求“OPTIONS”和“POST”。

登录回调拦截器:“POST”和“POST”

有谁知道如何检测请求方法何时是 OPTIONS?我需要禁用微调器,只有当它不是预检时。

感谢您的帮助!

【问题讨论】:

    标签: angular cors


    【解决方案1】:

    使用 req.method 可以访问 http 方法。 这里请求对象引用angular doc

    【讨论】:

    • req.method 没有返回 OPTIONS。请求在浏览器中是 POST 和 OPTIONS,但在控制台日志中打印时,两者是相同的。
    • 这是因为这种情况下的选项调用是出于安全原因 (CORS) 由浏览器自动进行的,您无法处理。在这种情况下,您还必须处理异常情况并停止微调器,并可能向用户发送有关此的消息。
    猜你喜欢
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    • 2019-06-04
    • 1970-01-01
    • 2023-03-13
    • 2015-11-07
    • 2017-10-09
    • 2019-03-28
    相关资源
    最近更新 更多