【问题标题】:How to determine who is the origin of every HTTP request如何确定每个 HTTP 请求的来源
【发布时间】: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 建立的。

标签: javascript http browser cors cross-domain


【解决方案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 请求标头。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-20
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    • 2019-09-02
    • 1970-01-01
    相关资源
    最近更新 更多