Javascript 客户端相对寻址,不允许在应用程序URL中使用尾随斜杠
我对ASP.NET Core 3.1有一个奇怪的问题,我的ASP.NET 4应用程序中没有这个问题,如果我通过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
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文件时,这可能有点困难,因此在这种情况下,
应该可以工作