使用HTTP_Request2创建相对url get请求

时间:2013-08-12 01:41:29

标签: php relative-url http-request2

在客户端,我有$.get使用jQuery

调用的get请求
  

“modify_user.php?UID = SomeUserId”

使用此XMLHttpRequest,我获得了一些userID并加载了表单。 问题是在客户端我没有我的用户ID,以防我想修改我的用户。

所以我创建另一个名为

的php文件
  

modify_my_user.php

基本上我想要做的就是在服务器端获取id并模拟来自服务器的请求,就像是Ajax请求一样。

像这样的东西

require_once 'HTTP/Request2.php';


$r = new HTTP_Request2('Ajax/modify_user.php?uid='.$_SESSION['uid'], HTTP_Request2::METHOD_GET);
$r->setHeader(array('X-Requested-With' => 'XMLHttpRequest'));
$r->send();

echo json_encode($r->getBody());

这是因为在modify_user中我有一个拒绝方法,如果请求不是XMLHttpRequest

(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest');

问题是,当我尝试从服务器发出get请求时(在modify_my_user.php中)我收到此错误

  

HTTP_Request2_LogicException:HTTP_Request2需要一个绝对HTTP(S)   请求URL,在

中给出'localhostWeb / Ajax / modify_user.php?uid = 17'

有没有办法用这个包启用亲戚网址?

1 个答案:

答案 0 :(得分:2)

如果没有主机,您就无法发出HTTP请求 - 永远也无处。

您的问题有几种解决方案:

  1. 如果modify_user.php没有给出任何uid,只需自动使用会话中的那个。
  2. 如果特殊的uid“current_user”被赋予modify_user.php,则使用会话中的那个
  3. 在请求之前将$_SERVER["HTTP_HOST"]添加到您的网址。