2010-02-11 1 views
1

У меня есть простой 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-файл, я получаю уведомление, как и ожидалось. Однако, если я запустил это в одном из моих представлений MVC ASP.NET, ajax работает нормально, но функция обратного вызова никогда не будет достигнута. Я попытался создать пустую страницу View, в которой ничего нет, кроме jQuery и этого скрипта, чтобы исключить любые конфликты с другим Javascript.

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

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

Любые подсказки?

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

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

XMLHttpRequest.status является «0»

textStatus является «ошибкой»

errorThrown «не определен»

EDIT 2 Я хотел бы отметить, что URL я прошу фактически не вернуть ничего, я просто пытаюсь себе если он существует, если я просматриваю URL-адрес в моем браузере, он представляет собой простую текстовую строку. Я использую неправильный подход к этому?

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

EDIT 3

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

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

ответ

2

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

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

Update после ваших результатов

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

пытаются остановить распространение события в обработчике щелчка (где вы инициировать вызов AJAX) что-то вроде

$('yourselector').click(function(e){ 
    e.stopPropagation(); 
    // now do your ajax call here ... 
}); 
+0

Обновлено OP- это хороший совет! Обратный вызов обратного вызова теперь вызывается на странице просмотра, но не на тестовой странице html – elwyn

+0

попробуйте с обновленным ответом. –

+0

Это не решило проблему. Возможно, это будет: http://stackoverflow.com/questions/872206/http-status-code-0-what-does-this-mean-in-ms-xmlhttp – elwyn

0

я получаю это довольно много, и ошибка довольно unhelpfull.

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

Смежные вопросы