【发布时间】:2017-10-17 01:30:42
【问题描述】:
情况:
- 我有一个生产网络服务器,比如说https://example.com,配置了CORS,允许的来源有限。该集合不包括本地主机来源。
- 在 localhost 上,开发人员开发一个页面/模块/需要通过 AJAX 调用生产 Web 服务器的任何内容(即使在开发过程中)。为此,他们使用 CLI 参数 --disable-web-security --user-data-dir=chromeNoCors 运行 Chrome,以便 Chrome 发送不带 Origin 标头的 AJAX。
- 问题是只发送 GET 请求而没有标头。 POST 请求仍然包含标头,因此生产服务器将标头值 (http://localhost:5678) 与允许的来源集进行比较,并禁止访问请求的资源。
问题: 是否有可能以某种方式完全阻止发送 Origin HTTP 标头?
我知道有一种解决方法可以解决这种情况,方法是允许“localhost”(或开发人员必须添加到其 /etc/hosts 中的某些特定主机)到生产服务器上允许的来源集,但我'如果可能,我不想这样做。
【问题讨论】:
-
“在 localhost 上,开发人员开发了一个页面/模块/任何需要通过 AJAX 调用生产 Web 服务器的东西(即使在开发过程中)”——听起来你正试图绕过一个开发环境不能胜任这份工作。你应该改正那个问题。
标签: javascript ajax google-chrome http-headers cors