-1

我很好奇在某些情况下GM_xmlhttpRequest()如何读取页面。
GM_xmlhttpRequest是否像我在浏览器中访问网站一样访问网站?GM_xmlhttpRequest是否访问网站,就好像我在浏览器中访问网站一样?

会话是否仍然有效?例如:如果我从一个浏览器选项卡登录到一个网站,然后从另一个选项卡,我从脚本发送一个GM_xmlhttpRequest,这个新请求是否也登录?

我问的一个原因是因为在我的脚本中的一个点上,我发送了一个GM_xmlhttpRequest到我的域中的一个页面,该页面报告了来自PHP的REMOTE_ADDR。这是回报我的计算机的IP(这是我想要的),而不是我从这个函数调用的页面。

回答

-2

OMG它完全没有!!!!!!

var server2="http://www.somesiteimloggedinto.com"; 
var test_data=function(){ 
    GM_xmlhttpRequest({ 
     method: "GET", 
     url: server2, 
     onload: function(response) { 
      if(response.status == 200){ 
       alert(response.responseText); 
      } 
     }, 
     onerror: function(response) { 
      console.log("Connection to "+server2+" failed."); 
     } 
    }); 
}; 
test_data(); 
+0

工作代码的投票权。正确的。 – Jesse

4

不GM_xmlhttpRequest访问网站,如果我访问的网站在我的浏览器?如在,会话是否仍然有效?

是和否。 通常,GM_xmlhttpRequest看起来就像是对URL的Firefox请求。 It sends the usual headers and it normally sends any cookies。而且,是的,请求来自您的浏览器,因此它会报告您的IP地址。这意味着您通过网页进行的任何会话通常都会保留。

但是:

  1. 如果URL 跨域该网页,你有禁用第三方cookiethen GM_xmlhttpRequest will NOT send cookies和目标站点不会知道任何会议你有它。

  2. GM_xmlhttpRequest只加载请求的URL。如果它是任何网页:图像,CSS文件,JS文件等 - 网页调用 - 将不会被加载或处理。页面中的任何嵌入式JavaScript都不会运行。

    请参阅"How to get an AJAX get-request to wait for the page to be rendered before returning a response?"了解更多信息和提示,如果您需要取得AJAX支持的网站。

+0

这不完全准确。图像实际上是作为html代码处理的。这在跨域请求时出现,其中来自域B的相对链接的图像尝试对域A上的所述图像发出请求,如果域A上不存在指向所请求文件的链接,则导致404。当然,并不是将图像从网络传输到网络。 – Jesse