Как послать ajax на сторонний сервер? Сделал у себя на сервере скрипт который будет перенапровлять запросы, но что то пошло не так(
Вот пример скрипта
$postdata = http_build_query(
array(
'string' => 'Том',
'with_villages' => 'true',
'not_only_with_offers' => 'true'
)
);
$opts = array('http' => array(
'method' => 'POST',
'header' => 'Accept: */* \r\n
Accept-Encoding: gzip, deflate, br \r\n
Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 \r\n
Connection: keep-alive \r\n
Content-Length: 53 \r\n
content-type: application/x-www-form-urlencoded;charset=UTF-8 \r\n
Cookie: gradius=200; suid=2574aa39b73cbb8d4b715d54441d738c.efac56c3c691fdbf3e9ca469e2ca9b30; autoruuid=g5b9aa5512tq48rla54rmr3ghjebj7n6.30471ec6d7598efaae840b31ea7daa85; cto_lwid=e8c11d42-2660-4128-ae1a-1cd07c7dd6e2; _ym_uid=1536861527376088294; _ym_d=1536861527; autoru_sid=a%3Ag5b9aa5512tq48rla54rmr3ghjebj7n6.30471ec6d7598efaae840b31ea7daa85%7C1537539894233.604800.Pc4FrBoH_40wX1jKQt6P_Q.2hD7sT4LTQv7vyTUT_ZuY5nZnOhy2vCmqB1r1xLeSRw; yandexuid=4186291201519418362; my=YwA%3D; gids=; _csrf_token=190b4dd0a78d10f9866252f03f5192c7e88db81911132ef0; from=google-search; counter_ga_all7=1; X-Vertis-DC=sas; rheftjdd=rheftjddVal; _ym_wasSynced=%7B%22time%22%3A1537812410095%2C%22params%22%3A%7B%22eu%22%3A0%7D%2C%22bkParams%22%3A%7B%7D%7D; _gcl_aw=GCL.1537812414.Cj0KCQjwlqLdBRCKARIsAPxTGaUHyYOABd8XtDQk_MTqPM9Pyn2ymVRAAlIYxA5RL0VSypawJx1Psv4aApUIEALw_wcB; _ym_isad=2; from_lifetime=1537812848908 \r\n
Host: auto.ru \r\n
Origin: https://auto.ru \r\n
Referer: https://auto.ru/cars/vaz/all/?sort=fresh_relevance... \r\n
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36 \r\n
x-csrf-token: 190b4dd0a78d10f9866252f03f5192c7e88db81911132ef0 \r\n
x-requested-with: fetch \r\n',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('https://auto.ru/-/ajax/regionsSuggest/index.php', false, $context);
echo $result;
Но в ответ пусто, а если убрать "Host: auto.ru \r\n" то не пускает.
Может кто подскажет в чем ошибка.
Вообще это попытка использовать обработчик поиска городов с авто ру через file_get_contents или CURL

21 Авг 2019 в 06:20
216 +1
0
Ответы
1

Для отправки AJAX запроса на сторонний сервер с помощью PHP можно воспользоваться функцией CURL. Пример кода для отправки POST запроса с использованием CURL:

$postdata = http_build_query(
array(
'string' => 'Том',
'with_villages' => 'true',
'not_only_with_offers' => 'true'
)
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://auto.ru/-/ajax/regionsSuggest/index.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: */*',
'Accept-Encoding: gzip, deflate, br',
'Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
'Connection: keep-alive',
'Content-Type: application/x-www-form-urlencoded;charset=UTF-8',
'Cookie: gradius=200; suid=2574aa39b73cbb8d4b715d54441d738c.efac56c3c691fdbf3e9ca469e2ca9b30; autoruuid=g5b9aa5512tq48rla54rmr3ghjebj7n6.30471ec6d7598efaae840b31ea7daa85; cto_lwid=e8c11d42-2660-4128-ae1a-1cd07c7dd6e2; _ym_uid=1536861527376088294; _ym_d=1536861527; autoru_sid=a%3Ag5b9aa5512tq48rla54rmr3ghjebj7n6.30471ec6d7598efaae840b31ea7daa85%7C1537539894233.604800.Pc4FrBoH_40wX1jKQt6P_Q.2hD7sT4LTQv7vyTUT_ZuY5nZnOhy2vCmqB1r1xLeSRw; yandexuid=4186291201519418362; my=YwA%3D; gids=; _csrf_token=190b4dd0a78d10f9866252f03f5192c7e88db81911132ef0; from=google-search; counter_ga_all7=1; X-Vertis-DC=sas; rheftjdd=rheftjddVal; _ym_wasSynced=%7B%22time%22%3A1537812410095%2C%22params%22%3A%7B%22eu%22%3A0%7D%2C%22bkParams%22%3A%7B%7D%7D; _gcl_aw=GCL.1537812414.Cj0KCQjwlqLdBRCKARIsAPxTGaUHyYOABd8XtDQk_MTqPM9Pyn2ymVRAAlIYxA5RL0VSypawJx1Psv4aApUIEALw_wcB; _ym_isad=2; from_lifetime=1537812848908',
'Host: auto.ru',
'Origin: https://auto.ru',
'Referer: https://auto.ru/cars/vaz/all/?sort=fresh_relevance...',
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36',
'X-CSRF-Token: 190b4dd0a78d10f9866252f03f5192c7e88db81911132ef0',
'X-Requested-With: XMLHttpRequest'
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
echo $result;

Попробуйте использовать данный код с функцией CURL, чтобы отправить AJAX запрос на сторонний сервер. Убедитесь также, что сервер, на который вы отправляете запрос, корректно обрабатывает передаваемые данные и возвращает ожидаемый результат.

20 Апр в 13:20
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 706 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир