Сделайте относительный URL-запрос на получение с HTTP_Request2

На стороне клиента у меня есть запрос get, вызванный $.get с помощью jQuery

"Modify_user.php? UID =SomeUserId"

с этим XMLHttpRequestЯ получаю некоторый идентификатор пользователя и загружаю форму. Проблема заключается в том, что на стороне клиента у меня нет идентификатора пользователя, если я хочу изменить своего пользователя.

Поэтому я создаю еще один файл php

modify_my_user.php

и в основном я хотел получить идентификатор на стороне сервера и смоделировать запрос от сервера, как будто это был запрос 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 требуется абсолютный URL-адрес HTTP(S)-запроса, "localhostWeb/Ajax/modify_user.php? Uid=17", указанный в

Есть ли способ включить URL-адрес родственников с этим пакетом?

1 ответ

Решение

Вы не можете делать HTTP-запросы без хоста - никогда и никуда.

Есть несколько решений вашей проблемы:

  1. Если UID не дается modify_user.php, просто используйте тот из сессии автоматически.
  2. В случае если специальный uid "current_user" задан modify_user.phpвместо этого используется тот из сеанса
  3. Prepend $_SERVER["HTTP_HOST"] на ваш URL, прежде чем запрашивать его.
Другие вопросы по тегам