【问题标题】:Problem with calling WebApi controller from js ajax从 js ajax 调用 WebApi 控制器的问题
【发布时间】:2019-03-24 09:52:26
【问题描述】:

在我的 ASP.NET MVC 应用程序中,我在通过 ajax 语句调用 WebAPI 控制器时遇到问题。

这是我的代码:

    $.ajax({
        url: 'api/cartitems',
        type: self.cartItem.id == null ? 'post' : 'put',
        contentType: 'application/json',
        data: ko.toJSON(data)
    })
    .done(self.successfulSave)
    .fail(self.errorSave)

它会产生错误 404 - 找不到文件。

我测试了不同的可能性,只有一种可行的是使用整个 URL 路径。

    $.ajax({
        url: 'http://xx.yyy.zz.vvv/APP_NAME/api/cartitems',
        type: self.cartItem.id == null ? 'post' : 'put',
        contentType: 'application/json',
        data: ko.toJSON(data)
    })
    .done(self.successfulSave)
    .fail(self.errorSave)

是否可以不使用完整路径?

【问题讨论】:

标签: c# ajax asp.net-mvc asp.net-web-api


【解决方案1】:

我想知道,ASP.NET MVC 配置是否有错误。 在开发人员环境中,它使用 ajax 调用中的简化 URL。 而且我无法相信微软会强迫开发人员在每个生产系统上调整 URL 地址。

【讨论】:

    【解决方案2】:

    我敢打赌Url.Action 构造会起作用。它与您的路由配置相关联以生成有效的 url。

    在 .JS 脚本中

     url:'@Url.Action("api","cartitems")',
    

    在.xxhtml中

    url:'@Model.YourPostabckUrlVariable',
    

    【讨论】:

    • 噢!你是对的。也许将回发放在模型中。
    猜你喜欢
    • 2020-06-24
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多