AJAX post to external url



我试图用ajax发布数据到一个外部url与以下代码:

$(document).ready(function(){
    $('.submit_button').click(function() {
        $.ajax({
                type : 'POST',
                url : 'http://site.com/post.php',
                dataType : 'text',
                data: $("#infoForm").serialize()
        }).done(function(results) {
                    alert(results);
        });
        event.preventDefault();
    });
});

但是我得到以下错误:

XMLHttpRequest无法加载http://site.com/post.php。Access-Control-Allow-Origin不允许为null。

我还在服务器上的htaccess文件中添加了以下行

Header set Access-Control-Allow-Origin *

是否有人能告诉我我做错了什么,以及如何将数据发布到外部url?

外部URL是您的吗?如果没有,那是不可能的。如果是,您必须在该域中返回以下标头:

Access-Control-Allow-Origin: http://your.domain.com

或者如果您想允许所有域:

Access-Control-Allow-Origin: *

更多信息可以在这里找到:https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS

如果它不是你的域名,你必须创建一个代理,创建一个PHP文件,从该域名获取你需要的内容。在你自己的域名做ajax请求

除非使用CORS,否则不能使用Ajax向另一个域发送请求。这是由于同源策略。如果您拥有服务器,您可以通过创建Access-Control-Allow-Origin: *

内容的.htaccess文件来在Apache中设置CORS。

最新更新