Как включить перекрестный домен POST-IN в PHP?
Я связываюсь, чтобы отправлять данные POST с одного сайта на другой (оба сайта были нами разработаны).
Проблема в том, что переменные POST недоступны, если страница запрашивается из другого домена.
Даже если я тестирую его локально, но укажу полный URL-адрес, данные POST исчезли.
Итак, это сработает:
<form method="POST" action="test.php">
Но это не будет:
<form method="POST" action="http://example.com/test.php">
Вот HTML для страницы:
<html>
<head>
<title></title>
</head>
<body>
<form method="post" action="http://example.com/test.php">
<input type="text" name="request" value="" id="" />
<input type="submit" value="" id="" />
</form>
</body>
</html>
После комментариев, которые я получил, это должно сработать, я протестировал его на другом сервере и там все отлично работало. Это может иметь какое-то отношение к тому, что на первом сервере включен https. Но если это так, мне кажется странным, что я возвращаю информацию, но данные POST пропали без вести.
Ответы
Ответ 1
То, что у вас должно работать, - формы пришли до политики одного и того же происхождения - вам разрешено отправлять в разные домены.
Если мне угрожать догадка, я бы сказал, что там 301-й или 302-й редирект попадает туда? Например, следуйте за заголовками HTTP с помощью Firebug.
Ответ 2
Как говорили другие, не должно быть никаких проблем с этим. Я бы предложил заменить ваш test.php script чем-то простым, вроде этого
<?php
echo "<pre>";
var_dump($_POST);
echo "</pre>";
Вы должны найти, что это работает, а это значит, что виноват где-то в "реальном" script...
Ответ 3
Возможно, также времяпровождение:
Если вы отправляете POST на домен .com, убедитесь, что он не перенаправляется на сайт www.domain.com.
Переадресация не учитывает переменные POST, только GETVariables.
Если он перенаправляется на сайт www.domain.com, добавьте www. в вашем POST-действии
Ответ 4
Спасибо. Я также обнаружил, что перенаправление на www и https блокирует выполнение моего запроса $ _POST.
Изменяя мои действия, чтобы включить https://www.
Я исправил свою проблему.
Спасибо