2009-07-02 44 views
1

我有一個情況,我想提交一個表單,並得到這個提交的迴應,因爲基於這個迴應「至少提交完整回覆」我會做一些其他的邏輯。如何捕獲提交表單回覆「不同的域名」?

什麼讓我的情況是不同的,這種形式是在一個域上,我提交給另一個域名,所以不能使用AJAX提交由於跨腳本安全問題。

任何人都面臨這樣的情況,並有一個解決方案?

我用jQuery代碼提交表單:

$('#MyForm').submit(); 

表單代碼:

<form target="MyIframe" name="MyForm" id="MyForm" 
    action="http://mydomain/page.aspx" method="post"> </form> 

回答

2

對於跨域通信,您不容易在客戶端獲取結果。服務器端支持將是必需的 - 公開可以在客戶端上點擊的附加服務(例如,通過在頁面中嵌入元素)。

這允許您向服務器發出GET請求並以JSON的形式獲得結果。做到這一點的方法之一是:

  1. 客戶端創建<script src="http://otherdomain.com/gettoken"></script>
  2. 這將返回類似

    VAR設爲MyToken = 「ABC123」;

  3. 該值被插入的形式,然後將其指定標記
  4. 客戶端的密鑰下提交到相同的服務器
  5. 服務器存儲的形式的結果創建<script src="http://otherdomain.com/getresult?token=ABC123"></script>
  6. 服務器獲取的形式爲ABC123的結果,然後返回爲JSON
+0

你的想法很好,工作很好,我有另一個問題,不會讓我用這個想法,我的查詢字符串太長:( – 2009-07-02 15:24:09

0

你需要讓服務器端的請求......

Dim Response as String 

Using Client as New System.Net.WebClient() 
    Response = Client.UploadData("key=value") 
End Using 

然後,如果你想使用AJAX,你會將它指向這個本地處理程序來繞過跨域問題。