0

使用 jQuery 1.8.3 时未调用 Ajax 响应success:function(),但代码与 jQuery 1.4.2 完美配合。

这里的代码:

<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 响应。

可能是什么问题?

4

2 回答 2

4

在您的$.ajax()通话中,dataType是 JSON。您在评论中说响应是 HTML。只需将其更改dataType为“html”即可解决问题。

于 2013-03-02T19:05:52.957 回答
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"); 
                }
        }).....
于 2013-03-02T19:03:00.763 回答