split的错误:split不是函数

时间:2015-08-02 20:30:36

标签: javascript jquery

我有这个javascript代码,可以在按钮点击时执行ajax请求。

$('#allinea').click(function(e){
    e.preventDefault();
    var password = $('#password').val();
    $.ajax({
        type: "POST",
        url: "db_align.php",
        data: {password:password},
        complete: function(data){ 
            data1=data.split("|");
            if(data1[0]=="Successo"){ 
                $("#per_all").fadeTo(200,0.1,
                function(){
                    $(this).find('img').attr("src",'../images/ok.png');
                    $(this).find('.right').html(data1[1]).promise().done(function(){
                        $(this).fadeTo(900,1);
                    });
                });
            }else if(data1[0]=="Errore"){
                $("#per_all").fadeTo(200,0.1,
                function(){
                    $(this).find('img').attr("src",'../images/alert.png');
                    $(this).find('.right').html(data1[1]).promise().done(function(){
                        $(this).fadeTo(900,1);
                    });
                });
            }
        }
    }); //chiudo $.ajax
});

php页面返回“Successo | Allineamento riuscito”,我在firebug中看到它正确但是js返回错误:

  

类型错误:data.split不是函数

     

DATA1 = data.split( “|”);

我在我的应用程序中随处使用此代码,没有任何不便。这次我做错了什么?

对于我所看到的,这不是一个数组,所以这应该没有任何不便!

2 个答案:

答案 0 :(得分:5)

jQuery将在此处返回jqXHR,这意味着您可能需要执行data而不是直接访问data.responseText

答案 1 :(得分:2)

Exo的答案是完美的。它允许您编辑原始文本。

如果您知道返回的数据类型,则可以(必须)显式设置它。然后,jQuery将以正确的格式以编程方式为您转换data

对于JSON,

dataType: json
明文dataType: text

documentation中可以找到更多内容。

  

您应该将complete方法更新为done以获取成功条件,将fail更新为请求失败时。

     从 1.8版开始,

complete已弃用,它已替换为always,后者会返回datajqXHR个对象。成功complete将根据data的功能返回done个对象。