После нескольких дней поиска здесь мой вопрос (вопрос меня сильно раздражает)Почему мой POST-вызов ajax проходит как GET?
Я передаю вызов ajax с почтовым методом, чтобы отправить форму. К сожалению, $(form).submit()
не подходит в моем случае. Вот JQuery код:
$.ajax({
url: '/Controller/_MyJson',
type: 'POST',
method: "POST",
data: $('#form').serialize(),
success: function (data)
{
// I will add a redirection here later
}
});
Регулятор:
[HttpPost]
public JsonResult _MyJson (MyViewModel vm)
{
//action here
}
Route Config: url: "{controller}/{action}/{id}"
Вопрос заключается в том, что в консоли Chrome мой вызов передается как GET, и это дает мне сообщение об ошибке 404 , На стороне контроллера существует метод _MyJson
, и он имеет объявленный [HttpPost]
.
Моя версия jquery 2.1.4. Я использую aspx WebForms и модель MVC.
Я благодарен за любую помощь!
UPD: После перехода на отладчик Mozilla я обнаружил, что мой POST-вызов проходит с статутом 301, и есть GET с тем же именем, которое дает ошибку 404. O_o
Вы используете конфигурацию маршрута? если это так, проверьте свои маршруты, чтобы увидеть, к чему он привязан. – Zaki
Тип - это псевдоним метода. Вам не нужны оба. Но это не то, что решает вашу проблему. –
Параметр 'type' бесполезен. Из документации jQuery: 'Вы должны использовать тип, если используете версии jQuery до 1.9.0.' –