jQuery.ajax在使用“”中定义的别名时找不到服务器;主机”;文件,但可以用ip地址修复

jQuery.ajax cannot find server when use an alias defined in "hosts" file, but can with ip address - how fix?

本文关键字:文件 主机 但可以 ip 地址 服务器 ajax 定义 jQuery 别名 找不到      更新时间:2023-09-26

我在主机文件(在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);
        }
});

是什么原因造成的?我该如何解决这个问题?

检查主域。问题是你的JS ajax

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

错误是由于域的解释方式造成的。当我加载客户端页面时,我从192.168.1.123(服务器的实际ip地址)加载它。但它是通过域名请求服务器的。由于多个域可以在同一台服务器上,这(我相信)会导致浏览器将它们解释为交叉源,从而拒绝它

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

(我也可以通过在服务器上添加头header('Access-Control-Allow-Origin: *');来实现它,但这不是一个好主意。)