Я пытаюсь написать веб-приложение с помощью ASP.NET webAPI и нокаутом и использовать IIS. Здесь я пытаюсь инициировать модель представления на странице администратора (http://localhost/Attendance/Home/Admin
). API для извлечения всех пользователей находится на пути http://localhost/Attendance/user
. Этот URL-адрес возвращает пользователей при доступе к браузеру.jquery getjson() ASP.Net WebAPI вызывает неправильный URL
Однако, когда я к нему доступ снизу яваскрипта
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();
}
Метод getjson не формирует правильный URL, когда я даю realtive путь к веб-ресурсу апи, таким образом, я получаю сообщение об ошибке 404. URL-адрес, который он вызывает, - http://localhost/Attendance/Home/api/user
. Затем я попробовал поставить этот код на http://localhost/Attendance/Home/Index
, и он работал там.
Я не хочу использовать hardcoded URL в javascript. есть ли выход?
Заранее спасибо.
Вы сказали, что URL-адрес API был «http: // localhost/Attendance/user», так что ваш URL-адрес getJSON должен быть, вероятно, '/ Attendance/user'. Попробуйте это и сообщите нам об итогах. –
Вы используете MVC или WebApi? Ваши URL-адреса относятся к MVC, но ваш код относится к WebAPI. Поэтому я смущен – Dalorzo
@rober: О, извините, его ошибка там. Мой URL-адрес API: http: // localhost/Attendance/api/user – Mahesh