【问题标题】:htaccess redirect working for postman not for chrome (CORS)htaccess 重定向适用于邮递员而不适用于 chrome (CORS)
【发布时间】:2018-08-01 13:00:45
【问题描述】:

我有一个在 AWS (DomainA) 中运行的 Web 服务,它运行良好。它是使用 JAX-WS 和 Jersey 用 Ja​​va 制作的 REST 服务。我有一个响应过滤器,它添加了对所有域的访问(Access-control-allow-origin *),这应该可以工作,因为如果我删除它,我什至无法让 Web 服务在本地工作。

我在 one.com (DomainB) 上购买了一个域,在其中我使用 .htaccess 将所有请求重定向到 DomainA。现在,当我尝试在 DomainB 上调用一些 REST 方法时,无论我调用它(如果它是 GET 方法),它都可以正常工作。如果它是 POST 方法,它也适用于 POSTMAN,但在 Chrome 中我得到了臭名昭著的:

Failed to load "ServiceB". Redirect from "ServiceB" to "ServiceA" has "MyPage" been blocked by CORS policy: No Access-Control-Allow-Origin is present... 

如果我直接调用 DomainA,我可以在我的响应标头中看到所有域都被允许并且一切正常。

任何想法为什么 CORS 在通过我的 DomainB 时不起作用?

【问题讨论】:

    标签: java .htaccess rest cors


    【解决方案1】:

    Chrome 本身“强制执行”CORS - 浏览器添加 Origin 请求标头(并在必要时发出 CORS 预检 OPTIONS 请求)并检查各种 CORS 响应标头,例如 Access-Control-Allow-Origin

    浏览器仅对 fetch/XmlHTTPRequest 执行此操作(后者只是前者的包装器)。因此,如果您直接(在实际浏览器之外)运行您的 Web 服务,客户端将不会发生 CORS 处理。

    只有在浏览器中运行它时才会看到 CORS 问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-29
      • 2014-11-19
      • 1970-01-01
      • 2019-01-20
      • 2018-01-29
      • 1970-01-01
      • 1970-01-01
      • 2020-01-12
      相关资源
      最近更新 更多