2010-10-03 5 views
2

В настоящее время я пытаюсь решить странную проблему. Я всегда работал с ajax, json и т. Д., Но понятия не имею, почему этот простой код ниже не работает.

Ниже приводится полный яваскрипт и HTML код:

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
     <title>Testing Ajax</title> 
    </head> 

    <body> 
     <script> 
     $(function(){ 
      $('h1').click(function(){ 
      alert('clicked');   
      jQuery.ajax({ 
       url: "teste2.html", 
       success: function(html){ 
       $('h1').append(html); 
       }, 
       error : function(){ 
       alert('errou'); 
       } 
      }); 
      }); 
     }); 
     </script> 
     <h1>Json Funfando</h1> 
    </body> 
</html> 

В той же папке, у меня есть файл teste2.html. В любом случае, если я переименую url к чему-то, чего не существует (например, dasdasdsadsa.html), что $ .ajax все равно вернет успех, даже с правильным файлом имени возвращенные файлы всегда пуст. Обработка ошибок, если я вставлен, никогда не вызывается.

У кого-нибудь есть идеи, почему это происходит?

PS .: Я судимое поставить его на простую функцию OnLoad, изменяя jQuery.ajax до $ .ajax

ответ

3

Вы, вероятно, придется изменить путь ваш сервер отвечает и сделать его вернуть другой заголовок HTTP, предполагающего ошибка, а не 200 OK.

Проверьте, что возвращает ваш сервер, и посмотрите, что он возвращает статус 404 для несуществующих страниц.

0

@fabio - каков фактический заголовок ответа? Я обнаружил, что jQuery ajax и определенные браузеры на самом деле не являются ошибкой для некоторых ответов. Вот один, что я лично знаком с:

  • FF 3.6.8 возвращает xhr.status === 0, когда сервер отвечает HTTP код, если 301.
Смежные вопросы