XMLHttpRequest.prototype.open不会拦截chrome-dev-tools上显示的所有HTTP请求

时间:2019-06-23 15:31:59

标签: javascript xmlhttprequest

我正在使用第三方嵌入式代码,该代码会发出一些HTTP请求,其请求标头的来源与我的不同。

当我尝试使用XMLHttpRequest拦截HTTP请求时,它不会拦截该请求。我想是因为它有不同的起源。但是,chrome-dev-tools确实会拦截它。

let oldXHROpen = XMLHttpRequest.prototype.open;

XMLHttpRequest.prototype.open = function(method, url) {
  console.log(url)
  return oldXHROpen.apply(this, arguments);
}

它记录所有以请求标头来源为我的域的请求。但是,它不会记录在dev-tools中显示的带有我的域以外的请求标头的任何请求。

1 个答案:

答案 0 :(得分:1)

如果它与您的页面有不同的来源,那只能是因为它在不同的来源上运行

可能在iframe内部(它可能是由您用来嵌入第三方代码的脚本动态生成的。)

Same Origin Policy可以防止您出于明显的安全性和隐私性原因而拦截在用户浏览器和第三方站点之间发送的请求。