2010-11-18 136 views
5

我做从site.com/users/{username Ajax调用}jQuery的阿贾克斯URL

我想访问的URL site.com/account/deleteComment,但是当我在Firebug检查它是试图访问site.com/users/account/deleteComment

这里是我的代码

$.ajax({ 
     url: "../account/deleteComment/" + deleteID, 
     success: function() { 
      $("#comment-" + deleteID).slideUp("fast"); 
     } 
    }); 

回答

14

好吧,那么../../是怎么回事要做的伎俩,不是吗?

也就是说,在这里使用绝对URL可能是一个好主意。

url: "/account/deleteComment/" + deleteID, 

这将消除您轻松将应用程序移动到子文件夹的能力,但在大多数情况下,这不是问题。

+0

肯定。但没有使用URLS的绝对方式? – 2010-11-18 10:11:08

+0

哎。将尝试它 – 2010-11-18 10:11:26

+0

看起来像它的作品。在本地主机上我有我的应用程序在localhost/project /所以它去localhost/account/deleteComment是有办法让它在任何地方工作。我确信它可以在服务器上运行:D – 2010-11-18 10:14:42

1

更改网址:

/account/deleteComment/ 

这样,它会去根路径:

site.com/account/deleteComment 
1

我刚刚也有类似的问题,在我的应用程序之一。
我用的解决方案是

$.url("Config/GetEnvironment") 

而且,任何目录,我在URL中正确呈现。

0

绝对URL是ajax的好主意,但这是更好,更简单的方法。 刚刚在全球范围宣布为var siteURL = www.example.com;。 并且像下面那样每ajax请求使用这个。

<script> 
$.ajax({ 
    url: siteURL + '/path/to/file', 
    type: 'POST', 
    data: {param1: 'value1'}, 
}); 
</script> 

一般来说,我在主索引文件或JS文件的配置文件中声明。

0

您可以使用location.origin为GET基址

var deleteID; 
 
$.ajax({ 
 
     url:location.origin + "/account/deleteComment/" + deleteID, 
 
     success: function() { 
 
      $("#comment-" + deleteID).slideUp("fast"); 
 
     } 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

$.ajax({ 
 
     url:location.origin + "/account/deleteComment/" + deleteID, 
 
     success: function() { 
 
      $("#comment-" + deleteID).slideUp("fast"); 
 
     } 
 
    });