2013-06-30 141 views
1

我沒有關於這個問題的具體問題,但更多的是,我不能開始工作,直到我知道這一點,不能挖掘一個答案,所以我會用一些隨機片段我有躺在身邊來示範。GM_xmlhttp請求通過代理服務器

說我有腳本:

GM_xmlhttpRequest({ 
method: "GET", 
url: server + "SyncWatcher/get.php?ckey=" + privatekey, 
onload: function(response) { 
document.getElementById("cfinder").innerHTML+="<span id='kswlst' style='display:none;'>" + response.responseText + "</span>";}}); 

和隨機代理服務器,可以說188.2.38.197:8080

如何着手對通過代理服務器的要求?


好吧,編輯,使之成爲具體的問題:

我有一個包含

echo $_SERVER['REMOTE_ADDR'] . "<br>" . $_SERVER['HTTP_X_FORWARDED_FOR']; 

一個PHP頁面,並使用我加載到一個div測試頁上:

GM_xmlhttpRequest({ 
method: "GET", 
url: "the get page", 
proxy: "188.2.38.197", 
port: "8080", 
onload: function(response) { 
document.getElementById("targin").innerHTML=response.responseText; 
} 
}); 

但是,它加載的IP仍然是我自己的地址,所以它沒有使用代理。 如何讓它使用提供的代理服務器?

回答

0

There is no proxy property for GM_xmlhttpRequest()。 (plain XMLHttpRequest()也沒有。)

通常對於ISP或公司代理服務商,根據您的提供商的說明提供set Firefox to use that proxyGM_xmlhttpRequest()將自動使用該代理,只要目標站點不在Firefox的「無代理」列表中。

你的代碼也只是:

GM_xmlhttpRequest ({ 
    method: "GET", 
    url: "AN ORDINARY URL THAT IS *NOT* IN THE 'NO PROXY' LIST", 
    onload: function (response) { 
     document.getElementById ("targin").innerHTML=response.responseText; 
    } 
}); 

對於一次性的,或選擇性使用的代理服務器,他們通常通過URL參數或表單後得到的目標URL。您需要確定您正在使用的代理的詳細信息。

在這種情況下,您將指向代理 URL,並給予相應的數據。
例如,假設您的代理接受GET請求,並配置像這樣:

Proxy IP: 188.2.38.197 
Port:  8080 
Path:  GimmeGimme 
Parameter: thisUrl 

那麼你會抓取你的頁面,如下所示:

var targetURL = "http://YOUR_SERVER.COM/YOUR_PATH/"; 
var ajaxURL  = 'http://188.2.38.197:8080/GimmeGimme?thisUrl=' 
       + encodeURIComponent (targetURL) 
       ; 
GM_xmlhttpRequest ({ 
    method: "GET", 
    url: ajaxURL, 
    onload: function (response) { 
     document.getElementById ("targin").innerHTML=response.responseText; 
    } 
}); 
+0

Soory我花了這麼長時間纔看到這一點,正是我所需要的,謝謝:) –

+0

不客氣;樂意效勞。 –

相關問題