javascript window.location在检查firebug时给了我一个错误的url路径

javascript window.location gives me a wrong url path when checking firebug

本文关键字:一个 错误 路径 url location window 检查 firebug javascript      更新时间:2023-09-26

我有一个示例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

有了这个网址,它现在给了我:

"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/

请注意,在固定代码中,您不会得到两次主机名。

我不确定这样的错误可能来自哪里,但指定主机是多余的:AJAX请求无论如何都是同一个域(除非特别配置),所以只需从根指定一个部分:

url: "/forms/get_data.php",