【发布时间】: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 提供的链接。似乎它正在澄清任何跨源调用都将具有源头。