通过jquery.ajax将post数据提交到另一个域

通过jquery.ajax将post数据提交到另一个域,jquery,ajax,cross-domain,Jquery,Ajax,Cross Domain,以我的生命来说,我不能让它工作。当test.php文件与此应用程序位于同一服务器上时,我会收到此警报,但如果我将其指向另一个域,则它根本不起作用。功能是: $.ajax({ url: 'http://www.mycrossdomain.co.uk/test.php', crossDomain: true, dataType: 'json', success: function(data) { alert('success');

以我的生命来说,我不能让它工作。当test.php文件与此应用程序位于同一服务器上时,我会收到此警报,但如果我将其指向另一个域,则它根本不起作用。功能是:

        $.ajax({
    url: 'http://www.mycrossdomain.co.uk/test.php',
    crossDomain: true,
    dataType: 'json',
    success: function(data) {
        alert('success');
    }
    });
有人有有用的打印机吗?

正在使用

您不能(即,以键值对作为主体的HTTP POST请求方法)通过XHR连接到不同的域、协议和/或端口

您可以使用,但知道 但是,您可以将表单提交到另一个URL。

正在工作

您不能(即,以键值对作为主体的HTTP POST请求方法)通过XHR连接到不同的域、协议和/或端口

您可以使用,但知道
但是,您可以将表单提交到不同的URL。

完成此工作的唯一方法是在JS所在的服务器上创建一个“代理”页面,该页面将通过JSON请求将数据发送到第三方服务器,并将结果直接返回到脚本。这里的问题(正如下面的评论所指出的)是,虽然您可以获得一个JSONP请求来工作到另一个域,但是您不能通过POST请求发送数据;这是因为“JSONP请求”所做的只是在DOM中插入一个脚本标记,所以您唯一的选择就是通过脚本src url通过GET传递参数。

实现此功能的唯一方法是创建一个“代理”JS所在服务器上的页面,该页面将通过JSON请求向第三方服务器发送数据,并将结果直接返回到脚本。这里的问题(正如下面的评论所指出的)是,虽然您可以获得一个JSONP请求来工作到另一个域,但是您不能通过POST请求发送数据;这是因为“JSONP请求”所做的只是在DOM中插入一个脚本标记,所以您唯一的选择就是通过脚本src url通过GET传递参数。

Melissa,这太粗鲁了。不,你不能。这是一种浏览器安全功能,任何普通浏览器都无法做到这一点。@melissa jones我刚刚标记了你的评论,我同意评论有点过火,甚至说你唯一能做的就是将表单提交到不同的URL是不真实的。如果她拥有外部url,或者如果外部域提供对JSONP请求的支持,那么这完全可以实现。虽然它不是一个真正的XHR请求,但它仍然会像预期的那样与jQuery一起工作。问题不是“是否可以跨域XHR请求”,而是“通过jquery.ajax将帖子数据提交到另一个域”,只要满足正确的条件,这是完全可能的。@Brad看到了“通过XHR”了吗?是的,我看到了您指定XHR的地方,但同样,原始帖子没有指定“XHR”-原始post指定“通过jquery.ajax到另一个域”-jquery ajax包装器本机支持JSONP/跨域请求。您是否曾经使用过jQuery,或者您只是假设jQuery.ajax调用将始终使用XHR?Melissa,这很粗鲁。不,你不能。这是一种浏览器安全功能,任何普通浏览器都无法做到这一点。@melissa jones我刚刚标记了你的评论,我同意评论有点过火,甚至说你唯一能做的就是将表单提交到不同的URL是不真实的。如果她拥有外部url,或者如果外部域提供对JSONP请求的支持,那么这完全可以实现。虽然它不是一个真正的XHR请求,但它仍然会像预期的那样与jQuery一起工作。问题不是“是否可以跨域XHR请求”,而是“通过jquery.ajax将帖子数据提交到另一个域”,只要满足正确的条件,这是完全可能的。@Brad看到了“通过XHR”了吗?是的,我看到了您指定XHR的地方,但同样,原始帖子没有指定“XHR”-原始post指定“通过jquery.ajax到另一个域”-jquery ajax包装器本机支持JSONP/跨域请求。您是否曾经使用过jQuery,或者只是假设jQuery.ajax调用将始终使用XHR?那么您的答案中的帖子在哪里呢?你是否经常回显未经处理的用户输入?你在说什么?您是否曾经使用过jQuery,或者您只是试图为了争论而争论,因为您不想承认这实际上是可能的?OP没有提到POST是一项要求,或者该请求必须是XHR请求。问题的标题是通过jquery?+1提交POST数据,对于本地代理建议,非常确定这是转发Alex的唯一方法-你是对的,我并没有想到JSONP不能实现POST请求。编辑了我的答案,以反映使用Post可以完成此操作的唯一方法。那么,您的答案中的帖子在哪里?你是否经常回显未经处理的用户输入?你在说什么?您是否曾经使用过jQuery,或者您只是试图为了争论而争论,因为您不想承认这实际上是可能的?OP没有提到POST是一项要求,或者该请求必须是XHR请求。问题的标题是通过jquery?+1提交POST数据,对于本地代理建议,非常确定这是转发Alex的唯一方法-你是对的,我并没有想到JSONP不能实现POST请求。编辑了我的答案,以反映使用POST可以完成此操作的唯一方法