0

在客户端,我有一个$.get使用 jQuery调用的 get 请求

“修改_user.php?uid=SomeUserId”

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

所以我创建了另一个名为

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');

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

HTTP_Request2_LogicException: HTTP_Request2 需要一个绝对的 HTTP(S) 请求 URL,'localhostWeb/Ajax/modify_user.php?uid=17'

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

4

1 回答 1

2

如果没有主机,您将无法发出 HTTP 请求 - 永远不会,也无处可去。

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

  1. 如果没有给 uid modify_user.php,只需自动使用会话中的一个。
  2. 如果将特殊的 uid “current_user” 提供给modify_user.php,则使用会话中的那个
  3. $_SERVER["HTTP_HOST"]在请求之前添加到您的 URL 。
于 2013-08-12T06:47:50.513 回答