我已经在主机文件中定义了一个别名(在Linux上): 192.168.1.123 mysite-example.com 当我在网络浏览器中访问它时,它可以工作。 但是,当我的JavaScript调用jquery ajax帖子时,它不起作用。

这不起作用

$.ajax({
        url: "http://mysite-example.com/mypage.php",
        data: { "test": "test" },
        success:function(data) {
            console.dir(data);
        },
        error: function(errorThrown){
            console.dir(errorThrown);
        }
});

这是可行的

$.ajax({
        url: "http://192.168.1.123/mypage.php",
        data: { "test": "test" },
        success:function(data) {
            console.dir(data);
        },
        error: function(errorThrown){
            console.dir(errorThrown);
        }
});

是什么原因造成的? 我该如何解决?

===============>>#1 票数:0

检查主域。 问题是您的JS ajax之外的其他问题

问题:mysite-example.com js:mysite.example.com

===============>>#2 票数:0 已采纳

该错误是由于域的解释方式所致。 当我加载客户端页面时,我是从服务器的实际IP地址192.168.1.123加载它的。 但是它正在通过域名请求服务器。 由于多个域可以位于同一台服务器上,因此(我认为)这会导致浏览器将它们解释为跨域,从而拒绝它。

当我访问域名( http://mysite-example.com )的客户端页面(使用ajax调用)时,ajax调用有效。

(我也可以通过在服务器上添加标header('Access-Control-Allow-Origin: *');header('Access-Control-Allow-Origin: *');使其工作,但这不是一个好主意。)

  ask by Don Rhummy translate from so

未解决问题?本站智能推荐: