.js文件中的网址是相对于javascript位置还是浏览器位置?

时间:2011-05-24 09:06:41

标签: javascript url location relative-path relative

a)当我在Javascript文件中使用AJAX请求时:

... url: "request.php" ...

当我在现场(重写的网址)时:

http://domain/some/action/id/

和javascript在元标记中找到并链接:

... src="http://domain/js/ajaxrequest.js" ...

然后请求转到http://domain/some/action/id/request.phphttp://domain/js/request.php

b)如果我将请求网址更改为/request.php而不是request.php,那么它会始终转到http://domain/request.php吗?

c)如果我有两个工作环境:

http://localhost/projectname/http://projectname.com/

和文件结构如下所示(projectname.com是projectname目录的副本):

http://localhost/projectname/js/ajaxrequest.js
http://localhost/projectname/request.php
http://projectname.com/js/ajaxrequest.js
http://projectname.com/request.php

我可以在主页上,也可以在网址上重写地址,如:

http://localhost/projectname/
http://projectname.com/
http://localhost/projectname/some/action/id/
http://projectname.com/some/action/id/

我希望在javascript文件中请求的url会在所有这些条件下工作,我应该把地址放在:

url: "../request.php"

在JS文件中?

2 个答案:

答案 0 :(得分:5)

JavaScript中的URI只会插入到与文档关联的对象中,因此相对于文档URI而不是JS src URI。

一个。前者

湾是

℃。我非常强烈建议您在所有环境中保持与根的任何路径的距离相同。在本地设置虚拟名称托管,或使用像Charles Proxy这样的东西在您的本地测试环境中重写您的域名。

答案 1 :(得分:1)

在我们公司的开发服务器上,我们遇到了类似的问题。我们通过使用子域而不是文件夹来解决它。所以它是projectname.localhost/some/action/id/