У меня есть простой метод, который создает список объектов Team, конвертирует их в Json и затем возвращает.Получение пустого ответа от запроса получения от службы Rest в MVC 4 Asp.net
public ActionResult Index()
{
var teams = new List<Team>() {
new Team{ Name = "Caracas F.C", City = "Caracas", Id = 1},
new Team{ Name = "Millonarios", City = "Bogota", Id = 2},
new Team{ Name = "Independiente", City = "Bogota", Id = 3}};
var jsonData = new { teamsData = teams };
return Json(jsonData, JsonRequestBehavior.AllowGet);
}
Когда я иду к этому URL (http://prototypeteam.apphb.com/, проверить это самостоятельно), я могу ясно видеть Json
{ "teamsData": [{ "Id": 1, "Имя »:« Каракас »,« Город »:« Каракас »}, {« Идентификатор »: 2,« Имя »:« Миллонарий »,« Город »:« Богота »}, {« Идентификатор »: 3,« Имя », : "Индепендьенте", "Город": "Богота"}]}
Но когда я пытаюсь получить Json с помощью JQuery он возвращает без ответа:
self.allTeams = ko.observableArray();
$.getJSON("http://prototypeteam.apphb.com/", function (data) {
var mappedTeams = $.map(data.teamsData, function (item) {
return new TeamViewModel(item);
});
self.allTeams(mappedTeams);
});
TeamViewModel = function (data) {
self = this;
self.Id = data.Id;
self.Name = data.Name;
self.City = data.City;
}
Это то, что я получаю от Firebug от Mozilla.
Если кто-то может мне помочь понять, почему это происходит. Я не понимаю, почему я вижу Json явно на URL, но JQuery, похоже, не понимает, что происходит. Благодарю.
И это все в одном домене, или ваш скрипт не работает из того же домена? – adeneo
Возможно, вам нужно будет явно добавить имя метода в свой вызов, чтобы вернуть Json, а не просто передать URL-адрес. Также попробуйте использовать полный ajax() вместо короткого кода getJson. Затем в ajax() установите тип «post» и передайте пустые данные. – User970008
@adeneo no, это не тот же домен. –