HTML-форма POST кросс-домен - PullRequest
       16

HTML-форма POST кросс-домен

7 голосов
/ 14 декабря 2011

У меня есть очень простая форма HTML, которая использует POST, и ее действие вызывает скрипт PHP на моем веб-сервере.

Вот кикер ... HTML-код, содержащий форму, размещен не на одном сервере и существует в другом домене. Не увязывая этот вопрос с объяснением, это должно быть сделано по деловым причинам. Они должны существовать в этих конкретных доменах.

Когда я отправляю свою форму, я правильно получаю доступ к сценарию PHP, но затем пытаюсь извлечь данные POST, и они исчезают. Я думаю, что это проблема безопасности, потому что я временно поместил форму на тот же сервер, что и PHP, и он работал нормально.

Есть ли способ заставить это работать с двумя отдельными доменами? Заранее спасибо.

Edit:

PHP-код (emailTemplate.php):

<?php
var_dump($_POST);
?>

HTML-форма:

<form name="emailForm" id="emailForm" method="post" onsubmit="return beforeSubmit();" action="https://***.***.com/emailTemplate.php">
    <textarea rows="15" cols="75" id="myHtmlText" name="myHtmlText"></textarea>
    <input type="text" id="toAddr" name="toAddr" size="60"/>
    <input type="text" id="fromAddr" name="fromAddr" size="60"/>
    <input type="text" id="subjectLine" name="subjectLine" size="60"/>
    <input type="submit" name="Submit" value="Email Letter">
</form>

1 Ответ

5 голосов
/ 14 декабря 2011

Если вы испытываете проблему только в IE, возможно, виноват их XSS-фильтр. Эта статья содержит подробности по ее отключению.

Чтобы полностью избежать этой проблемы, попробуйте опубликовать форму в сценарии PHP на своем сервере, и в этом сценарии создайте сеанс cURL, который отправит форму другому сценарию. Транзакция XSS происходит независимо от веб-браузера клиента, устраняя эти ограничения безопасности на основе браузера в процессе.

...