javascript - 正确设置Ajax相对URL

标签 javascript jquery ajax asp.net-mvc

我有一个分为多个区域的 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/

相关文章:

javascript - 单击按钮后自动滚动到特定的 PHP 消息

php - 数据库更改后如何更改表的实时状态?

javascript - “按钮”未定义 react/jsx-no-undef react.js

javascript - 如何删除() HTML 元素然后添加() 它?

javascript - 单击删除 append

php - 在另一个文件中携带 $id 变量

php - 我如何在 php 中使用 ajax 检索模式中的个人资料数据?

javascript - 使用 BxSlider 插件后 JQuery 不起作用

javascript - 为什么 230/100*100 不返回 230?

javascript - 当用省略号隐藏文本溢出时阻止 Safari 显示工具提示