Jquery:POST表单变量并获取HTTP响应? (跨域)

时间:2010-11-24 22:48:21

标签: jquery ajax json post jsonp

我需要向在线服务提交一个网络表单,如果一切顺利,则返回HTTP 200,如果表单提交不正确,则返回不同的内容。使用AJAX是我想要做的漂亮错误似乎告诉我的用户他们发送了凌乱的信息。

所以我开始做我早先做过的事情,this question中提到了这一点,但是由于表单被提交到了我自己(跨域)之外的另一个域,所以我花了很长时间才发现那Firefox sent OPTIONS request instead of the POST I expected

由于这些选项不可用,我进一步搜索并发现了JSONP函数,我发现not supporting POST for cross-domains requests

显然,在此之后,我的头脑即将崩溃。我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

您可能希望在html5中查看window.postMessage。甚至还有一个名为jQuery postMessage的jQuery插件试图为旧版浏览器(通过隐藏的iFrames)提供支持,而这些浏览器还不支持它。

但一般来说,通过ajax不支持发布到单独的域。另一个(可能更容易)替代方案是在您自己的服务器上创建一个代理脚本,该脚本获取ajax数据并通过curl对您的外部服务执行POST,并简单地将结果代码返回给您自己的ajax调用。它不会受到跨域限制,因为您要发布到自己的域。