Javascript 客户端相对寻址,不允许在应用程序URL中使用尾随斜杠

Javascript 客户端相对寻址,不允许在应用程序URL中使用尾随斜杠,javascript,ajax,asp.net-core,asp.net-core-3.1,Javascript,Ajax,Asp.net Core,Asp.net Core 3.1,我对ASP.NET Core 3.1有一个奇怪的问题,我的ASP.NET 4应用程序中没有这个问题,如果我通过 http://example.com/Application/ 然后一切正常,但如果我想去 http://example.com/Application(无尾随斜杠) 然后客户端相对地址解析为http://example.com/Resource而不是http://example.com/Application/Resource 对于应用程序的根,我也有类似的问题。例如,/Resour

我对ASP.NET Core 3.1有一个奇怪的问题,我的ASP.NET 4应用程序中没有这个问题,如果我通过

http://example.com/Application/

然后一切正常,但如果我想去

http://example.com/Application
(无尾随斜杠)

然后客户端相对地址解析为
http://example.com/Resource
而不是
http://example.com/Application/Resource

对于应用程序的根,我也有类似的问题。例如,
/Resource
似乎表示相对于域,因此产生
http://example.com/Resource
<代码>资源本身正确地生成
http://example.com/Application/Resource
。但“根”本身又该怎么说呢?重定向到空字符串似乎会刷新页面,而不是重定向到应用程序根目录

我通过使用
,以及使用
/Resource
而不是
Resource
来解决这个问题。这似乎在几乎所有情况下都有效,除了在访问应用程序时没有尾部斜杠

访问
http://example.com/Application
,以表单
/Method?handler=name
的URL为目标的AJAX调用将导致请求
http://example.com/Method?handler=name
(缺少路径的
应用程序部分)

如何使客户端相对地址一致地引用正确的应用程序根地址?或者这可能是正常的行为吗?

试试这个:

函数stripsalshends(url){
返回url.replace(/^\/\/$/g',);
}
console.log(stripSlashEnds('http://example.com/Application/“)+”/“+stripSlashEnds(“/anotherFile/”);

console.log(stripSlashEnds('http://example.com/Application“)+”/“+stripsalshends(“/anotherFile”)
您需要将主模板中的基本url(
\u Layout.cshtml
在ASP.NET Core MVC中)设置为应用程序路径

\u Layout.cshtml
中添加

<base href="~/"/>

~/
是ASP.NET Core将替换为
http://example.com/Application
。通常,如果需要应用程序相对路径,则应始终执行

当涉及到静态json文件时,这可能有点困难,因此在这种情况下,
应该可以工作