-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