如何捕获提交表单响应“不同域名”?

时间:2009-07-02 14:00:44

标签: asp.net javascript jquery ajax

我有一个案例,我想提交一份表格并从此提交中获得回复,因为基于此回复“至少提交完整回复”我会做出一些其他逻辑。

是什么让我的情况不同,这个表单在域上,我将其提交到另一个域名,因此由于跨脚本安全问题,不能使用ajax提交。

任何人都面临这样的情况并有解决方案吗?

我使用JQuery代码提交表单:

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

表格代码:

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您需要在服务器端发出请求...

Dim Response as String

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

然后,如果您想使用AJAX,您将指向此本地处理程序以绕过跨域问题。