【问题标题】:CORS - Get Remote origin/domain nameCORS - 获取远程源/域名
【发布时间】:2018-08-10 04:41:09
【问题描述】:

我正在跨域进行 Ajax 调用。我希望只允许对特定域进行此调用。从 HttpServletRequest 获取远程来源的最佳方法是什么。 request.getHeader("Origin") 会一直可用吗?如果远程域匹配我会设置

origin = getFromRequest...
if (origin=="example.com"{
   response.addHeader("Access-Controll-Allow-Origin",origin);
  }

【问题讨论】:

  • 我在这里找到了一些解释html5rocks.com/en/tutorials/cors
  • developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin。浏览器总是将 Origin 标头添加到使用 XHR 或 Fetch API 发出的跨域请求中。但请注意,浏览器也总是为同源 POST 请求发送 Origin 标头 - 以及使用除 GET 或 HEAD 之外的任何 HTTP 方法发出的同源请求。
  • 感谢@sideshowbarker 提供的链接。似乎它正在澄清任何跨源调用都将具有源头。

标签: ajax cors


【解决方案1】:

这是我从链接中找到的 https://www.w3.org/TR/cors/。我认为这是跨域应该有的 Origin 标题一直都是

也找到了这个链接,非常有帮助,讲的是IE 11如何管理cors requestInternet Explorer 11 does not add the Origin header on a CORS request?

【讨论】:

  • fetch.spec.whatwg.org/#cors-request。 (并且不要使用 w3.org/TR/cors 做任何事情;它已经过时了很多年,并且与当前的浏览器行为不匹配。)
  • 有人能说出为什么答案被否决吗?如答案中所述,大多数浏览器确实发送“来源”,而链接说 IE 可能发送不同。
猜你喜欢
  • 2014-03-06
  • 2010-12-20
  • 2019-02-23
  • 2021-11-02
  • 2016-01-10
  • 2017-10-16
  • 2018-04-02
  • 1970-01-01
  • 2023-03-08
相关资源
最近更新 更多