角阻塞的cors

Posted

技术标签:

【中文标题】角阻塞的cors【英文标题】:Angular blocked cors 【发布时间】:2021-01-04 15:36:15 【问题描述】:

在我的本地主机中,我禁用了 Google chrome 安全性,但我知道我想将它部署在我的服务器中,但我遇到了这个 cors 问题。 API 不是我的,它是一个外部 API。

我在 Typescript 中的服务是

getPlaces(holiday_type, currency, checkin, checkout, groups, page) 
    return this.http.get(
      `/api/v2/places?holiday_type=$holiday_type&currency=$currency&checkin=$checkin&checkout=$checkout&groups[]=$groups&page=$page`,
      
        headers: 
          'Authorization': this.auth,
          'Accept': 'application/json',
          'Access-Control-Allow-Origin': '*',
          'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
          'Access-Control-Allow-Headers': 'Content-Type, Access-Control-Allow-Headers, Access-Control-Allow-Origin, Authorization, X-Requested-With',
        ,
      );


我的 proxy.config 看起来如此


  "/api/*":  
    "target": "https://tr.halalbooking.com",
    "secure": false,
    "logLevel": "info"
  


【问题讨论】:

proxy.config 中缺少 "changeOrigin":true。你试过了吗? 是的,我已经测试过了,但没有成功:/ 在这种情况下,您需要一个服务器端代理。在您的最后运行节点并从那里调用 apiz 调用并将其提供给您的前端。 【参考方案1】:

从错误消息来看,halabookings 似乎正在阻止请求。你有两个选择:

    联系 halalbookings 的所有者并要求他们允许您的来源。通常,如果他们为您提供 API,您就有一个门户,您可以在其中列出白名单或指定允许的来源。

    将 API 调用移至 halalbookings 以在服务器端进行。然后,在您的前端调用您的 API(调用 halalbookings)

【讨论】:

我想测试一下,谢谢。如果我成功了,我会回信

以上是关于角阻塞的cors的主要内容,如果未能解决你的问题,请参考以下文章

CORS 访问阻塞

弹簧 cors 在获取时被阻塞

Fetch() 函数导致资源被 CORS 阻塞

球衣后端 jquery AJAX API 调用中的 Cors 策略阻塞

ajax 发布请求 - 跨域读取阻塞 (CORB) 阻止跨域响应 CORS

少数用户的 Chrome CORS 阻塞和少数用户的工作正常:Spring boot + Angular App