Я просто изучаю AJAX и позвонил своему контроллеру, но он не работает.MVC Ajax не работает
Проблема, с которой я столкнулся, заключается в том, что она вызывает ошибки, но предупреждение исчезает через полсекунды, а консольная ошибка довольно бессмысленна.
Любая помощь была бы принята с благодарностью.
Мой JQuery выглядит следующим образом:
function AjaxVoteClick(itemId) {
var Url = '@Url.Action("UpVote", "AJAX")' + '?ideaId=' + itemId;
$.ajax({
url: Url,
type: 'POST',
timeout: 60000,
dataType: 'json',
tryCount: 0,
retryLimit: 3,
success: function(data) {
alert("Success");
},
error: function (httpRequest, textStatus, errorThrown) {
alert(httpRequest + "Status = " + textStatus + ", error = " + errorThrown);
}
});
}
Когда я отладки это делает запрос в порядке, и с правильным идентификатором, но затем возвращается на ошибку.
Контроллер делает то, что он должен делать, но я покажу это в любом случае:
[HttpPost]
public virtual JsonResult UpVote(int ideaId)
{
IdeaGenEntities ctx = new IdeaGenEntities();
var currentIdea = (from m in ctx.Ideas
where m.ID == ideaId
select m).Single();
var model = new VoteModel();
model.Initialize(currentIdea);
int currentVotes = model.Votes;
currentVotes += 1;
currentIdea.Votes = currentVotes;
ctx.SaveChanges();
return Json(model);
}
Глядя на консоли Firebug дает очень мало. Ошибка проходит через полсекунды, если я не настаиваю. Тогда в заголовке у вас есть это:
Принять приложения/JSON, текст/JavaScript, /; q = 0.01 Accept-Encoding gzip, deflate Accept-Language en-US, en; q = 0,5 Приложение типа контента/json Cookie __utma = 111872281.1986143499.1358265304.1358511066.1358786646.8; __utmz = 111872281.1358265304.1.1.utmcsr = (прямой) | utmccn = (прямой) | utmcmd = (нет); ASP.NET_SessionId = natvmbqvjfnm11deiek1hngi; .ASPXAUTH = 4C0D282B36C410B3FA8271342C22B0A4435D35CD8F2BFE5B58E3F2A643993963F56D3F410A4E586FC44DC68B5737F9E7EEC18FB32E629014DECAA43B818DC49358E618CA73815EB1BBF977CE04342146B7F5EA30BB7D0D2328FC3B75F1C4CA65 Хост localhos Referer LocalHost User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; с.в.: 21,0) Gecko/20100101 Firefox/21,0 X-Requested-С XMLHttpRequest
EDIT: Добавление в ошибке Http Fox.
Это говорит NS_BINDING_ABORTED
и показывает это:
(Request-Line) POST/AJAX/UpVote ideaId = 1 HTTP/1.1 Хост локальный User-Agent Mozilla/5.0 (Windows NT 6.1, WOW64; rv: 21.0) Gecko/20100101 Firefox/21.0 Принять приложение/json, text/javascript, /; д = 0,01 Accept-Language EN-US, ан; д = 0,5 Accept-Encoding GZIP, выкачать X-Requested-С XMLHttpRequest Referer локальный Cookie __utma = 111872281.1986143499.1358265304.1358511066.1358786646.8; __utmz = 111872281.1358265304.1.1.utmcsr = (прямой) | utmccn = (прямой) | utmcmd = (нет); ASP.NET_SessionId = natvmbqvjfnm11deiek1hngi; ,ASPXAUTH = 4C0D282B36C410B3FA8271342C22B0A4435D35CD8F2BFE5B58E3F2A643993963F56D3F410A4E586FC44DC68B5737F9E7EEC18FB32E629014DECAA43B818DC49358E618CA73815EB1BBF977CE04342146B7F5EA30BB7D0D2328FC3B75F1C4CA65
И в содержании он говорит: Ошибка при загрузке контента (NS_ERROR_DOCUMENT_NOT_CACHED)
Извините, но что такое «бессмысленная» ошибка? Вы пробовали смотреть трафик в Fiddler? –
вместо предупреждения вы можете использовать Console.log, чтобы вы могли указать статус и другие переменные. – mlwacosmos
Я включил сообщение HttpFox, если это какая-то помощь? –