在我的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)
是否可以不使用完整路径?
答案 0 :(得分:1)
我想知道ASP.NET MVC配置是否存在错误。 在开发人员环境中,它可以在ajax调用中使用简化的URL。 而且我无法相信Microsoft会强迫开发人员在每个生产系统上调整URL地址。
答案 1 :(得分:0)
我敢打赌Url.Action
构造会起作用。它与您的路由配置相关联以生成有效的网址。
在.JS脚本中
url:'@Url.Action("api","cartitems")',
在.xxhtml
中url:'@Model.YourPostabckUrlVariable',