javascript - jquery ajax - 调用我的 asp.net web api 给出错误的 url 和 404 未找到消息

标签 javascript jquery ajax asp.net-mvc asp.net-web-api

我正在编写一个小型 ASP.NET MVC 站点,其中还包含我编写的 WEB API。

我已在本地 IIS 上将项目配置为 http://localhost/mysite

在我网站的主页上,我包含了一个我编写的 js 脚本:

<script src="@Url.Content("~/Content/js/home.js")"></script>

在我调用的 js 的页面就绪事件上:

$.ajax({
    url: 'api/getdetails',
    accepts: 'application/json',
    cache: false,
    type: 'GET',
    success: function (data) {
        alert(data);
    }
});

当使用 Fidler 查找时,我发现页面调用返回 404,因为它不会尝试将其加载到我所在的相对路径 (http://localhost/mysite) 并且它尝试加载服务器的根目录 - 所以调用看起来像这样 http://localhost:80/api/getdetails

当我编写 Web 表单时,我经常进行这样的 ajax 调用,而且它总是有效。

我错过了什么?

谢谢

最佳答案

我最终做的是在我的布局 html 中添加了一个 js var:

var baseUrl = '@Url.Content("~/")';

然后在我的 ajax 调用中我添加了该基本 url:

$.ajax({
    url: baseUrl + 'api/getdetails',
    accepts: 'application/json',
    cache: false,
    type: 'GET',
    success: function (data) {
        alert(data);
    }
});

无论页面看起来如何,这都可以解决问题。即使我导航到 http://localhost/mysite/home/index

这可能不是完美的解决方案,而且我绝对认为旧的网络表单方式更好 - 但我想任何技术都有利有弊。

仍然很高兴听到有人有更好的解决方案。现在 - 这可以解决问题。

关于javascript - jquery ajax - 调用我的 asp.net web api 给出错误的 url 和 404 未找到消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21509161/

相关文章:

javascript - 当我使用 marquee 和 thick box 插件时如何解决 jquery 类冲突?

javascript - 在每个幻灯片转换上暂停多个 YouTube Iframe 视频

javascript - 使用 js 渲染 html 是一种不好的做法吗?

javascript - 处理 Jquery 模板中的特殊字符

ruby-on-rails - Rails 和 ajax 请求 : not using csrf working?

javascript - 使用变换的css3动画

javascript - 如何在数组中的三个不同变量之间切换?

javascript - 对 Outlook API 的 POST Ajax 调用 - 访问被拒绝

php - jquery ajax 返回空值

javascript - 使用jquery UI的dialog()函数和ajax调用