2011-12-13 39 views
6

我有一個非常簡單的HTML表單,它使用POST及其操作在我的Web服務器上調用PHP腳本。HTML表單POST跨域

這裏是kicker ...包含表單的html不在同一臺服務器上,並且存在於不同的域中。如果不解釋這個問題並解釋,就必須出於商業原因。他們需要存在於這些特定的領域。

當我提交我的表單時,我正確地訪問了PHP腳本,但是我試着拔出POST數據並且它不見了。我認爲這是一個安全問題,因爲我暫時將表單放在與PHP相同的服務器上,並且工作正常。

有沒有一種方法可以讓我使用這兩個單獨的域?提前致謝。

編輯:

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> 
+0

理論上,你在做什麼不應該導致任何問題。這聽起來像(a)在接收POST數據的PHP腳本中或在發送它的web表單中存在錯誤,或者在阻止帖子的PHP腳本或服務器配置中存在某種安全措施。不幸的是,除非您可以發佈一些代碼,否則我們能做的最好的事情就是推測。 – Aaron 2011-12-13 23:30:19

+0

@Aaron我加了代碼,如果有幫助的話。謝謝。 – jcmitch 2011-12-13 23:41:05

回答

5

如果你只遇到IE中的問題,他們的XSS過濾器應該責怪。 This article提供了禁用它的詳細信息。

要完全避免此問題,請嘗試將表單發佈到服務器上的PHP腳本,然後在該腳本中創建一個cURL會話,將該表單發佈到其他腳本。 XSS事務獨立於客戶端的Web瀏覽器進行,避免了這些基於瀏覽器的安全限制。