当我使用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。