2013-03-02 112 views
0

使用jQuery 1.8.3時Ajax響應不調用success:function(),但代碼與jQuery 1.4.2完美協作。Ajax響應不調用成功:使用jQuery時的function()1.8.3

這裏的代碼:

<script type="text/javascript"> 
$(document).ready(function(){ 
    $("#usn").on('keyup',function() { 
     var dat=$("#usn").val(); 
     if($.trim(dat).length<10){ 
      $("#result").html(""); 
      $("#info").show(); 
     } else if($.trim(dat).length==10) {  
      txt=$("#usn").val(); 
      txt=txt.toUpperCase(); 
      var exp = /^[1-9][a-zA-Z][a-zA-Z][0-9][0-9][a-zA-Z][a-zA-Z][0-9][0-9][0-9]$/; 
      if(exp.test(txt)){ 
       var resultType =$("input[name='resultType']:checked").val(); 
       $("#result").html("<img src=\"./result/loader.gif\"/><br/>Loading...");  
       $.ajax({ 
        type: "GET", 
        url: "result/result_html.php?usn="+txt+"&resultType="+resultType, 
        dataType:"JSON", 
        success:function(result){ 
         $("#info").hide(); 
         $("#result").html(result);    
         $("#usn").attr("placeholder", "USN"); 
        } 
       }); 
      } else { 
       $("#result").html("Please enter a valid USN.");  
      } 
     } 
    }); 
}); 
</script> 

控制檯沒有顯示任何錯誤。我可以在控制檯中看到Ajax請求已成功完成。我可以在腳本控制檯中看到預期的Ajax響應。

可能是什麼問題?

+0

是來自AJAX請求HTTP 200的狀態碼嗎? – 2013-03-02 18:48:42

+1

雅是200 ... – 2013-03-02 18:50:16

+0

響應是否有效JSON? http://jsonlint.com/ – 2013-03-02 18:53:16

回答

4

在您$.ajax()調用,dataType是JSON。你說你的評論中的回覆是HTML。只需將dataType更改爲「html」即可解決問題。

0

正如你作爲html發送響應...的數據類型應該是html而你的情況是json ..糾正,應該工作

$.ajax({ 
      type: "GET", 
      url: "result/result_html.php?usn="+txt+"&resultType="+resultType, 
      dataType:"html", //<-- here 
      success:function(result){ 
        $("#info").hide(); 
        $("#result").html(result);    
        $("#usn").attr("placeholder", "USN"); 
       } 
     }).....