JQuery не возвращается успешно

0

Это призыв к ajax для размещения моей формы.

<script type="text/javascript">

    $(function () {
        $("#GetReport").click(function () {               
            var d = {input:$("#frm").serialize()};                
            $.ajax({
                type: 'POST',
                url: '/Questions/Answer',
                data: JSON.stringify(d),
                dataType: "json",
                contentType: "application/json", 
                success: function (result) {
                    alert(result);
                }
            });
        });
    });

</script>

и это мое действие

[HttpPost]
public ActionResult Answer(string input)
{
    return Content("Success");
}

Когда я нажимаю соответствующую кнопку, действие вызывается, но когда значение возвращается, я ожидаю, что появится предупреждение с сообщением "Успех", но я ничего не получаю, несмотря на то, что мое действие вызвано.

Теги:
asp.net-mvc-4

2 ответа

4
Лучший ответ

Попробуйте dataType: "text", поскольку вы, кажется, возвращаете обычную строку (это не в формате JSON), а dataType указывает ожидаемый формат ответа, а не формат запроса. (Или просто удалите параметр dataType, и в этом случае jQuery будет делать dataType возможное, чтобы dataType, какой формат ответа он видит.)

  • 0
    Но то, что я не понимаю, - почему с возвращаемым типом JSON перенаправить меня куда-нибудь, вместо того, чтобы отображать что-то в предупреждении прямо в том же представлении?
  • 1
    Поскольку dataType:"json" сообщает jQuery, что вы ожидаете, что ответом будет JSON, поэтому, когда ваш ответ не является JSON, запрос по определению не удался, поэтому ваш обработчик success не вызывается. Если вы добавите обработчик ошибок, он должен быть вызван.
Показать ещё 1 комментарий
0
    [HttpPost]
    public ActionResult Answer(string input)
    {
        return Json("Success", JsonRequestBehavior.AllowGet);
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню