[英]jQuery.ajax cannot find server when use an alias defined in “hosts” file, but can with ip address - how fix?
我已经在主机文件中定义了一个别名(在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.com js:mysite.example.com
该错误是由于域的解释方式所致。 当我加载客户端页面时,我是从服务器的实际IP地址192.168.1.123
加载它的。 但是它正在通过域名请求服务器。 由于多个域可以位于同一台服务器上,因此(我认为)这会导致浏览器将它们解释为跨域,从而拒绝它。
当我访问域名( http://mysite-example.com
)的客户端页面(使用ajax调用)时,ajax调用有效。
(我也可以通过在服务器上添加标header('Access-Control-Allow-Origin: *');
标header('Access-Control-Allow-Origin: *');
使其工作,但这不是一个好主意。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.