我有一个示例 url 网站:http://mysite.com/
var host = window.location.protocol+"//"+window.location.hostname;
$.ajax({
type:"POST",
data: params,
url : host+'/forms/get_data.php',
success:function(data){
...othercodeblahblah
}
});
为什么当我尝试检查我的 Firebug 时它使 URL 变得奇怪。
这是 Firebug 的示例输出:
http://mysite.com/mysite.com/forms/get_data.php
有了这个 url,它现在给了我:
"NetworkError: 404 Not Found - http://mysite.com/mysite.com/forms/get_data.php"
它不应该像http://mysite.com/forms/get_data.php那样输出吗? ? 为什么它给我一个错误的 url 路径?
我们将不胜感激并奖励您的帮助!
谢谢!
最佳答案
原因是 window.location.protocol
已经包含一个冒号 (:)。
host
变量包含 http:://mysite.com
jQuery 发现您没有传递完整有效的 URL,因此它会自动在您的主机名前添加。
修复正在改变
var host = window.location.protocol+"://"+window.location.hostname;
到
var host = window.location.protocol+"//"+window.location.hostname;
编辑
我用你的代码创建了一个 jsfiddle:http://jsfiddle.net/xH5ZV/
和固定码:http://jsfiddle.net/xH5ZV/1/
请注意,在固定代码中您不会两次获得主机名。
关于javascript window.location 在检查 Firebug 时给我一个错误的 url 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12303281/