如何在php中将GET值传递到另一个URL?GET值转发

5

好的,我正在使用jQuery的AJAX函数,但在传递带有HTTP地址的URL时出现了问题。因此,我希望“获取”GET值并将它们发送到另一个URL - 本地php文件通过GET值传递给其他URL。

也许curl是答案?我不知道。答案必须是非常简短的。

伪代码:

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

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

编辑:这是JavaScript的跨脚本解决方案。


也许只有我一个人,但我无法完全理解这个问题。这是JS还是PHP的问题?当所有这些操作被执行时,用户看到了什么? - Your Common Sense
用户看不到任何东西,这是ajax。值是通过GET发送的。然而,jQery.ajax不喜欢http。所以我正在尝试将这些值转发到我正在使用的服务[另一个url]。有道理吗?在此处阅读有关jQuery.ajax函数的信息,以及它不喜欢“http”: http://api.jquery.com/jQuery.ajax/ - michael
AJAX就是HTTP。因为在Web上没有其他协议。你懂的。而且用户必须看到一些东西。至少是他停留的同一页。那么,是用jquery还是php来发送这个请求呢?如果是PHP-那么为什么要有所有这些jquery背景呢? - Your Common Sense
4个回答

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
如果您想要排除一个GET参数,只需在使用http_build_query()之前使用unset()。另外,最好包含一个白名单$_GET参数,以便您想要传递的参数可以通过。
   header('Location: http://example.com/new?' . http_build_query($_GET));
   exit;

文档。别忘了 exit()


你确定JS对象能理解这样的响应吗? - Your Common Sense
@Col. Shrapnel 我并没有完全理解这个问题,但希望sblom是正确的方向。 - alex

0

明白了!谢谢 Alix Axel!

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

当通过 file_get_contents() 请求时,您可以使用 & 来连接 GET 参数。我认为只有在将它们回显到页面时才需要对它们进行编码。 - alex
原来这是一个跨域脚本问题,发生在Javascript上。Yahoo有一篇关于它的文章,他们使用了cURL——稍微复杂了一些。http://developer.yahoo.com/javascript/howto-proxy.html所以这行代码就是一个简单的PHP代理。 - michael

0

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

的意思是将用户重定向到另一个 URL,并在 URL 中传递变量 var。

似乎那个不太好用。我在Firebug的控制台中得到了一个302错误。 - michael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接