2010-04-27 115 views
5

好吧,所以我使用Jquery的AJAX函數,並且無法傳遞帶有http地址的URL。所以我希望能夠「獲取」GET值並將它們發送到另一個URL--因此:本地php文件開始傳遞GET值,然後將GET值傳遞給另一個URL。如何在PHP中將GET值傳遞給另一個url? GET值轉發

也許捲曲是答案?我不知道。這是我知道的一個非常簡短的答案。

僞代碼:

//retrieve the GET values 
$var retrieve [GET] 

//passing it to another url 
send get values to url ($var, url_address) 

編輯:這是JavaScript的一個交叉腳本解決方案。

+0

可能是唯一的我,但我不能完全問題。是JS還是PHP問題?在採取所有這些行動時,用戶會看到什麼? – 2010-04-27 04:18:08

+0

用戶看不到任何東西,它是ajax。值正在使用GET發送。然而jQery.ajax不喜歡http。所以我試圖將這些值轉發給我正在使用的服務[另一個網址]。說得通? 閱讀有關jQuery.ajax功能以及它如何不喜歡「http」 http://api.jquery.com/jQuery.ajax/ – michael 2010-04-27 04:28:50

+0

AJAX正好是HTTP。由於沒有其他協議的網絡。去搞清楚。用戶必須看到一些東西。至少他留在同一頁面。那麼,發送這個請求,jquery或php是什麼?如果它是PHP - 爲什麼所有這jQuery的背景呢? – 2010-04-27 04:45:50

回答

5

如果你想將用戶重定向:

header('Location: http://example.com/page.php?' . http_build_query($_GET, '', '&')); die(); 

然而,如果你只是想抓取網頁,使用此:

file_get_contents('http://example.com/page.php?' . http_build_query($_GET, '', '&')); 
0

header("Location: http://otherurl.com/page?var=" . $var);

+0

,似乎不工作得很好。我在Firebug的控制檯中得到了一個302錯誤。 – michael 2010-04-27 04:29:44

+1

串聯是通過PHP中的'.'運算符完成的。 – alex 2010-04-27 04:44:15

+0

-1,這根本不轉發GET值。 – 2010-04-27 04:51:03

0

如果要排除一個GET PARAM,只是unset()使用http_build_query()之前。包含您想要傳遞的$_GET params白名單也許是一個好主意。

header('Location: http://example.com/new?' . http_build_query($_GET)); 
    exit; 

Docs。別忘了exit()

+0

你確定JS對象會理解這樣的迴應嗎? – 2010-04-27 04:48:13

+0

@Col。彈片我沒有100%理解這個問題,但希望sblom走上正軌。 – alex 2010-04-27 05:06:41

0

明白了!感謝Alix Axel!

echo file_get_contents('http://example.com/page.php?'. http_build_query($_GET, '', '&')); 
+0

您可以使用'&'在通過'file_get_contents()'請求時加入GET參數。我認爲你只需要在將它們回顯到頁面時對它們進行編碼。 – alex 2010-04-27 06:13:38

+0

原來,這是一個跨域腳本問題,發生在JavaScript。雅虎有一篇關於它的文章,他們使用cURL--稍微複雜一點。 http://developer.yahoo.com/javascript/howto-proxy.html 所以這行代碼是一個簡單的PHP代理。 – michael 2010-04-27 18:08:33

相關問題