Javascript 拆分错误:拆分不是一个函数

Javascript 拆分错误:拆分不是一个函数,javascript,jquery,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: fu

我有一段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不是函数

数据1=数据分割|

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


对于我所看到的顺便说一句,这不是一个阵列,所以这应该没有任何不便的工作

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

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

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

数据类型:json代表json, 数据类型:纯文本的文本

更多信息请参见

您应该将完整方法更新为done for success条件,并在请求失败时更新为fail for

complete从1.8版开始就不推荐使用,它被替换为always,后者返回数据或jqXHR对象。当成功完成时,将根据done的功能返回一个数据对象


在100个案例中,99个案例的数据是正常的。这是唯一不起作用的情况。无论如何,我会看看你的答案!如果您希望jQuery始终返回JSON,请强制它使用dataType:JSON,对于纯文本dataType:text,这是关键,但我的疑问仍然存在。我从我在应用程序中构建的众多Ajax调用中复制粘贴了这段代码。我总是从php返回原始文本,js工作正常。我将看一看关于完成的要点。我想我需要做一些工作来更新我的代码:通常jQuery会猜测数据类型并返回它认为是的对象。我猜这里没有线索。找出这次失败的原因。如果输入数据通常是文本,我将序列化数据表单,jQuery将假设输出数据也是文本,正如我通常所说的那样。这次我输入一个json数组并输出一些文本。再次感谢你的提示