我在javascript文件中有一些代码,需要将查询发送回服务器。问题是,我如何找到我所在的脚本的url,这样我就可以为ajax构建一个合适的请求url。
也就是说,相同的脚本包含在/
、/help
、/whatever
等等上,而它总是需要向/data.json
请求。此外,同一站点运行在不同的服务器上,/
-folder可能放置在不同的服务器上。我有办法解析包含Javascript (ez-publish模板)的相对url,但不是在javascript文件本身内。
有没有可以在所有浏览器上运行的小脚本?
发布于 2008-09-20 18:08:21
为此,我喜欢将<link>
元素放在页面的<head>
中,其中包含用于请求的URL。它们可以由您的服务器端语言生成,因此它们总是指向正确的视图:
<link id="link-action-1" href="${reverse_url ('action_1')}"/>
变成了
<link id="link-action-1" href="/my/web/root/action-1/"/>
并且可以通过Javascript使用以下命令进行检索:
document.getElementById ('link-action-1').href;
发布于 2008-09-20 17:46:51
document.location.href
将提供当前的URL,然后您可以使用JavaScript的字符串函数对其进行操作。
发布于 2008-09-20 18:13:50
客户端不可能在没有服务器告知的情况下确定webapp根目录,因为它不知道服务器的配置。您可以尝试在head元素中使用base元素,让服务器动态生成它,而不是硬编码它(这样它就会显示每个服务器的相关URL ):
<base href="http://path/to/webapp/root/" />
然后,所有URL都将被视为与此相关。因此,您只需向/data.json发出请求即可。但是,您需要确保应用程序中的所有其他链接都牢记这一点。
https://stackoverflow.com/questions/108853
复制相似问题