【问题标题】:How can you pass GET values to another url in php? GET value forwarding如何将 GET 值传递给 php 中的另一个 url? GET值转发
【发布时间】:2011-02-12 16:50:21
【问题描述】:

好的,所以我正在使用 Jquery 的 AJAX 函数,它在传递带有 http 地址的 URL 时遇到了问题。所以我希望“获取” GET 值并将它们发送到另一个 URL - 所以:本地 php 文件开始传递 GET 值,然后将 GET 值转发到另一个 url。

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

伪代码:

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

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

edit:它是 JavaScript 的跨脚本解决方案。

【问题讨论】:

  • 可能只有我一个人,但我无法完全理解这个问题。是 JS 还是 PHP 的问题?执行所有这些操作时,用户会看到什么?
  • 用户什么都看不到,是ajax。使用 GET 发送值。但是 jQery.ajax 不喜欢 http。所以我试图将这些值转发到我正在使用的服务 [另一个 url]。说得通?在此处阅读有关 jQuery.ajax 函数以及它不喜欢“http”api.jquery.com/jQuery.ajax 的信息
  • AJAX 就是 HTTP。因为网络没有其他协议。去搞清楚。用户必须看到一些东西。至少在他停留的同一页面。那么,发送这个请求是什么,jquery 还是 php?如果是 PHP - 为什么所有这些 jquery 背景呢?

标签: php jquery ajax url cross-domain


【解决方案1】:

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

【讨论】:

  • 这似乎不太好用。我在 Firebug 的控制台中遇到 302 错误。
【解决方案2】:

如果您想排除 GET 参数,只需在使用 http_build_query() 之前使用 unset()。包含一个您想要传递的$_GET 参数的白名单也是一个好主意。

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

Docs。别忘了exit()

【讨论】:

  • 你确定 JS 对象会理解这样的响应吗?
  • @Col。弹片我没有 100% 理解这个问题,但希望 sblom 走在正确的轨道上。
【解决方案3】:

如果你想重定向用户:

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

如果你只是想获取页面,使用这个:

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

【讨论】:

    【解决方案4】:

    知道了!谢谢阿利克斯·阿克塞尔!

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

    【讨论】:

    • 您可以在通过file_get_contents() 请求时使用& 加入GET 参数。我认为您只需要在将它们回显到页面时对其进行编码。
    • 原来是 javascript 发生的跨域脚本问题。雅虎有一篇关于它的文章,他们使用 cURL——有点复杂。 developer.yahoo.com/javascript/howto-proxy.html所以这行代码就是一个简单的php代理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2019-01-27
    • 1970-01-01
    • 2015-02-12
    相关资源
    最近更新 更多