起初只是发现GM_xmlhttpRequest发出的请求chrome的network是看不到的,就去查,结果没查到,反而查到了GM_xmlhttpRequest还能修改origin和referer字段。自己写代码访问了自己的主机,发现还真是。
不是说origin和referer字段是不可修改字段吗,一旦修改chrome就会报错,为什么GM_xmlhttpRequest可以修改,是不是这也和chrome的network检测不到由GM_xmlhttpRequest发出的请求有关
起初只是发现GM_xmlhttpRequest发出的请求chrome的network是看不到的,就去查,结果没查到,反而查到了GM_xmlhttpRequest还能修改origin和referer字段。自己写代码访问了自己的主机,发现还真是。
不是说origin和referer字段是不可修改字段吗,一旦修改chrome就会报错,为什么GM_xmlhttpRequest可以修改,是不是这也和chrome的network检测不到由GM_xmlhttpRequest发出的请求有关
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
第一,GM_xmlhttpRequest 发出的请求能看到,你看不到是因为你找错地方了。扩展和网页两者是独立的,你要区分 content 和 background。你去看网页本身的 Network 当然看不到扩展程序发起的请求了 ———— 就像你开两个浏览器标签页、Tab1 里发起的请求、你在 Tab2 的 Network 里怎么能看到呢?
第二,Chrome/Firefox 等浏览器对扩展程序开放了一些额外的能力,这些能力都是在普通网页中无法实现的。在扩展中运行的 XMLHttpRequest 是一种提权过的特殊的 XMLHttpRequest,所以不是油猴能修改,而是浏览器允许扩展程序能修改,不代表你在在普通网页中也能这么干。