Почему в мире этот вызов ajax не работает - PullRequest
0 голосов
/ 12 февраля 2011
$(function () {
    $('input#UserName').blur(function () {
        var username = $('input#UserName').val();
        $.ajax(
        {
            type: "POST",
            url: "Profile/CheckAvailability",
            data: "username=" + username,               
            success: function (result) {
                //Some code here
            },
            error: function () {
                alert("Sorry! We could not receive your feedback at this time.");                
            }
        });
    });
});

и код на контроллере профиля

    [HttpPost]
    public JsonResult CheckAvailability(string username)
    {
        bool isAvailable = false;
        //Some code here
        return Json(new {success = isAvailable});
    }

Каждый раз, когда срабатывает alert("Sorry! We could not receive your feedback at this time.");.

Спасибо.

Ответы [ 2 ]

1 голос
/ 12 февраля 2011

Вот несколько советов:

  1. Убедитесь, что действие вашего контроллера не вызывает исключение (особенно ту часть, где вы говорите //Some code here). Это можно проверить, пройдя его и отладив.
  2. Убедитесь, что URL всегда кодирует параметры вашего запроса, и никогда не используйте конкатенацию строк:

    data: { username: username },
    
  3. Никогда не указывайте URL-адреса в вашем файле JavaScript. При работе с URL всегда используйте помощники Url (если это отдельный javascript, вы можете использовать глобальную переменную js, установленную в вашем представлении):

    url: '<%= Url.Action("Profile", "CheckAvailability") %>',
    
  4. Используйте FireBug , чтобы увидеть, что отправляется и получено с сервера.

0 голосов
/ 12 февраля 2011

Попробуйте установить dataType как "json", потому что указанный вами недопустим. Допустимые типы данных из документации jquery: xml, json, jsonp, html, text.

Проверьте этот URL об обработке ошибок AJAX: JQuery Обработка ошибок AJAX, показать пользовательские сообщения об исключениях

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...