我有这个:
$("input.fetchData").click(function () {
path = "/data";
var dataurl = 'http://localhost:8000' + path;
...
它在本地工作,但是当我部署到我的服务器时它停止工作。我想将localhost替换为提供该页面的主机。怎么样?
答案 0 :(得分:3)
您可以使用window.location
获取信息,但是您真的需要完整路径吗?对于ajax请求等,相对路径应该足够了。例如:
$("input.fetchData").click(function () {
$.ajax({
url: "/data",
...
});
});
Fetches If page served from ------- ---------------------- http://localhost:8000/data http://localhost:8000 http://w3.example.com/data http://w3.example.com
...等。如果要从当前位置的对等方提取,您可能会发现需要../data
而不是/data
,它始终从服务器的根目录开始。
无论如何,如果你需要一个完整的路径,这里有一个location
属性的简介:
protocol
- 例如,http
或https
hostname
- 主机名port
- 端口(默认为80,但当然问题可能是8000)host
- hostname
和port
为您预先合并 ...然后您可能会或可能不想pathname
。
答案 1 :(得分:0)
您可以使用“window.location”来了解您的主机
答案 2 :(得分:0)
您应该查看window.location
对象,它具有可用于构建网址的window.location.host
等属性,例如:
$("input.fetchData").click(function () {
path = "/data";
var dataurl = 'http://' + window.location.host + path;
// ...
});
答案 3 :(得分:0)
您可以使用相对URL而不是绝对URL,或者您可以浏览DOM中的window.location成员。
在大多数情况下,相对网址应该有效,但如果不相应,您可以随时使用以下内容重新创建网址:
var curUrl = document.location.protocol +“//”+ document.location.host + document.location.pathname;