我有一个分为多个区域的 MVC 应用程序,当我尝试从工程师区域进行 AJAX 调用时,相对 URL 会转换为与我的意图不匹配的 URL;
示例如下:
这是 Ajax 调用的 URL:
$.ajax({
cache: false,
type: 'GET',
url: 'api/JobData/GetSitesByClientId',
data: {
'clientId': selectedClient
}
})
这是生成的 URL:
http://localhost:53433/Engineer/Jobs/api/JobData/GetSitesByClientId?clientId=09659dc4-faa7-4edb-af27-ecb7416a82fb
这是我想要生成的 URL:
http://localhost:53433/api/JobData/GetSitesByClientId?clientId=09659dc4-faa7-4edb-af27-ecb7416a82fb
我怎样才能实现这个目标?
预先感谢您的帮助
最佳答案
您可以在 URL 开头放置一个前导斜杠 /
。但是,我不推荐这种方法,因为如果您的应用程序部署在子目录上(例如:www.host.com/myapp/
),那么路径将是错误的
在这种情况下我所做的是在我的 View 的 javascript 上下文中定义一个全局 rootPath 变量
布局
<script>
var rootPath = '@Url.Content("~")';
</script>
然后在 Javascript 文件中,我将 rootPath 附加到我想要使用的任何路径
$.ajax({
url: rootPath + 'mycontroller/mymethod',
method: 'GET',
success:function(){
alert("success");
}
});
关于javascript - 正确设置Ajax相对URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24676859/