Javascript Relative url 不包含 Id



当我使用JQuery发出ajax请求时,相对url不包括url的最后一部分。我有以下url:

/Question/100
/Question/100/AddComment

我正试图从第一页发送ajax请求到第二页。我使用的jquery是:

$.ajax({
url: 'AddComment',
type: 'POST'
});

这个ajax请求转到url

/Question/AddComment

要解决这个问题,我可以做window.location.href + "/AddComment"但是我想知道为什么相对url不包括Id值?也有办法解决这个问题,而不使用window.location.href?

这与JavaScript或jQuery无关,它只是浏览器如何解释相对url。这是有原因的。

浏览器不知道也不关心"在URL中。它只知道您正在请求位于路径(/Question/)末尾的资源(100)。与该资源相关的任何URL都将被相对于相同路径请求。因此,只请求AddComment将导致浏览器在/Question/路径中寻找AddComment

考虑如果不是的情况会发生什么。如果你在index.html页面上,你点击了about.html的链接。您希望或希望浏览器导航到/index.html/about.html吗?当然不是。

您只需要指定正确的URL。如果你能写出完整的绝对路径,那就太好了。如果您可以从服务器端代码(如ASP中的@Url.Route助手)动态输出它。例如。NET MVC),也很棒。如果您可以根据已知的基本值或检查当前URL在JavaScript中动态构建它,那么只要您涵盖了可能遇到的任何边缘情况和诸如此类的情况,这可能就很好了。但最终你需要指定URL。

最新更新