jquery getjson()ASP.Net WebAPI调用错误的url
我正在尝试用ASP.NETWebAPI和knockout编写web应用程序,并使用IIS。在这里,我尝试在管理页面上启动视图模型(jquery getjson()ASP.Net WebAPI调用错误的url,url,asp.net-web-api,getjson,Url,Asp.net Web Api,Getjson,我正在尝试用ASP.NETWebAPI和knockout编写web应用程序,并使用IIS。在这里,我尝试在管理页面上启动视图模型(http://localhost/Attendance/Home/Admin)。获取所有用户的API位于路径http://localhost/Attendance/user。从浏览器访问时,此url返回用户 但是当我从下面的javascript访问它时 function adminuservm() { //Properties self = t
http://localhost/Attendance/Home/Admin
)。获取所有用户的API位于路径http://localhost/Attendance/user
。从浏览器访问时,此url返回用户
但是当我从下面的javascript访问它时
function adminuservm() {
//Properties
self = this;
self.users = ko.observableArray();
self.user = ko.observable();
self.userscount = ko.computed(function () {
if (self.users == null)
return 0;
else
return self.users.length;
}, this);
//Methods
//Get all users
self.getAllUsers = function () {
$.getJSON("api/user", function (data) {
})
.done(function (data) { //success
if(data != null)
self.users = $.map(data, function (u) { return new user(u) });
})
.fail(function (data) { //error
alert("error");
});
};
//call getAllUsers to populate all users
self.getAllUsers();
}
当我给出web api资源的实际路径时,getjson方法没有形成正确的url,因此我得到404错误。它调用的URL是http://localhost/Attendance/Home/api/user
。
然后我试着在http://localhost/Attendance/Home/Index
view,它在那里工作
我不想在javascript中使用硬编码URL。有什么出路吗
提前谢谢。您需要将URI更改为
/attention/api/user
,如下所示:
self.getAllUsers = function () {
$.getJSON("/Attendance/api/user")
.done(function (data) { //success
if (data != null)
self.users = $.map(data, function (u) { return new user()});
})
.fail(function (data) { //error
alert("error");
});
};
还要确保在WebApiConfig
类中有如下路径
config.Routes.MapHttpRoute(
name: "",
routeTemplate: "Attendance/api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
您说过API url是
http://localhost/Attendance/user
所以您的getJSON url应该是/attention/user
。请尝试一下,并让我们知道结果。您使用的是MVC还是WebApi?您的URL指的是MVC,但您的代码是关于WebAPI的。我也是confused@rober字体哦,对不起,这是错误的。我的API url是@Dalorzo:我在同一个项目中使用MVC4和asp.net Web API。