2010-10-03 42 views
2

我目前正在嘗試解決一個奇怪的問題。我一直與ajax,json等合作,但不知道爲什麼下面這個簡單的代碼不起作用。

以下是完整的JavaScript和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:我tryed把它放在一個簡單的onload功能,改變jQuery.ajax到$就

回答

3

你可能必須改變你的服務器響應的方式,並使其返回不同的HTTP標頭暗示錯誤而不是200 OK。

檢查您的服務器返回的內容,並查看它是否爲不存在的頁面返回404狀態。

0

@fabio - 什麼是實際的響應頭?我發現jQuery ajax和特定的瀏覽器在某些響應中並不實際發生錯誤。下面是我個人用的familar一個:

  • FF 3.6.8返回一個xhr.status === 0時服務器的HTTP代碼回覆,如果301
相關問題