Обратный вызов Jquery $ .ajax не вызывается на странице просмотра ASP.NET MVC - PullRequest
1 голос
/ 12 февраля 2010

У меня простой вызов ajax:

$.ajax({url: my_url_here,
       dataType: 'text',
       success: function(data, textStatus) {
            if(textStatus == "success") {
                alert('success');
            }
            else {
                alert('fail');
            }
       },
       error: function(XMLHttpRequest, textStatus, errorThrown) {
    //do stuff
   }
});

Если я запускаю это в простом HTML-файле, я получаю предупреждение, как и ожидалось. Однако, если я запускаю это в одном из моих представлений ASP.NET MVC, ajax работает нормально, но функция обратного вызова никогда не достигается. Я попытался создать пустую страницу просмотра, на которой ничего нет, кроме jQuery и этого скрипта, чтобы исключить конфликты с моим другим Javascript.

Я вижу запрос в Firebug, и он возвращает ответ 200, как и ожидалось, но он просто не достигает обратного вызова.

Я пытался добавить cache: false параметр, играл с параметром asynch, похоже, ничего не получается ...

Есть какие-нибудь подсказки?

EDIT: Обновил мой jQuery с помощью обратного вызова с ошибкой, как было предложено.

Ошибка обратного вызова достигается на странице просмотра (но не на простой тестовой странице HTML), и я получаю следующее:

XMLHttpRequest.status равен "0"

textStatus "ошибка"

errorThrown равен "undefined"

РЕДАКТИРОВАТЬ 2 Я должен отметить, что запрашиваемый URL-адрес на самом деле ничего не возвращает, я просто пытаюсь увидеть, существует ли он - если я просматриваю URL-адрес в своем браузере, он представляет собой простую текстовую строку. Я использую неправильный подход к этому?

Почему он работает нормально в простом HTML-документе, но не в ASP.NET MVC View? ASP что-то делает с запросами ajax?

РЕДАКТИРОВАТЬ 3

Получается, что я пытался получить доступ к внешнему сайту, что не разрешено.

Кажется странным, что я справлялся с этим из простого тестового HTML-файла и столкнулся с проблемами только при использовании страницы просмотра ...

Ответы [ 2 ]

2 голосов
/ 12 февраля 2010

Реализуйте также обработчик error, просто чтобы быть уверенным ..

error: function(XMLHttpRequest, textStatus, errorThrown) {...}

Обновление после ваших результатов

Я считаю, что проблема в том, что ваши ссылки создают обратную передачу в форме .net.

попробуйте остановить распространение события в вашем обработчике кликов (где вы инициируете вызов ajax) что-то вроде

$('yourselector').click( function(e){
    e.stopPropagation();
    // now do your ajax call here ...
});
0 голосов
/ 12 февраля 2010

Я получаю это довольно много, и ошибка довольно бесполезна.

Я полагаю, что это проблема с URL, который вы запрашиваете.

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