如何确定每个 HTTP 请求的来源
Posted
技术标签:
【中文标题】如何确定每个 HTTP 请求的来源【英文标题】:How to determine who is the origin of every HTTP request 【发布时间】:2019-06-21 13:50:07 【问题描述】:来源 (Access-Control-Allow-Origin
) 是否由向我提供发送 HTTP 请求的脚本文件的服务器确定?
如果我是对的,那么有时我网站的脚本文件可能来自多个服务器。浏览器必须有一些关于每个脚本文件是从哪里下载的注释。我在哪里可以找到最新的 chrome 中的这些信息?
另外,我怎么可能有一个网站从服务器 A 接收他的脚本文件并向服务器 B 发送 HTTP 请求(每个服务器都有不同的域),服务器 A 有 Access-Control-Allow-Origin=*
而服务器 B 没有指定 @987654323 @ 但一切正常?
如果我错了,我该如何确定谁是 HTTP 请求的来源?
【问题讨论】:
this:我在哪里可以在 chrome latest 中找到此信息? 在开发工具网络面板中。 我在那里看不到。你能具体说明一下在哪里吗? 每一个请求的URL都可以找到……显然你不知道Origin的定义? 此外,源是由用于访问基本资源(通常是 html 文件)的请求 URL 建立的。 【参考方案1】:来源(Access-Control-Allow-Origin)是否由向我提供发送 HTTP 请求的脚本文件的服务器确定?
没有。
它允许在其他网站上运行的 javascript 从您的网站读取数据,这些数据通常会被同源策略阻止。
JavaScript 的起源无关紧要。它是包含 <script>
元素的 HTML 文档的来源,它加载了重要的 JavaScript。
浏览器必须有一些关于每个脚本文件从哪里下载的注释。我在哪里可以找到 chrome latest 中的这些信息?
浏览器开发者工具的网络标签。
另外,我怎么可能有一个网站从服务器 A 接收他的脚本文件并向服务器 B 发送 HTTP 请求(每个服务器都有不同的域),服务器 A 有 Access-Control-Allow-Origin=*并且服务器 B 没有指定 Access-Control-Allow-Origin 但一切正常?
来源是由 HTML 文档的 URL 决定的,而不是脚本。
如果我错了,我该如何确定谁是 HTTP 请求的来源?
来自 XHR 或 Fetch 的跨域请求将包含一个 Origin
HTTP 请求标头。
【讨论】:
以上是关于如何确定每个 HTTP 请求的来源的主要内容,如果未能解决你的问题,请参考以下文章