我有这个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( “|”);
我在我的应用程序中随处使用此代码,没有任何不便。这次我做错了什么?
对于我所看到的,这不是一个数组,所以这应该没有任何不便!
答案 0 :(得分:5)
jQuery将在此处返回jqXHR,这意味着您可能需要执行data
而不是直接访问data.responseText
。
答案 1 :(得分:2)
Exo的答案是完美的。它允许您编辑原始文本。
如果您知道返回的数据类型,则可以(必须)显式设置它。然后,jQuery将以正确的格式以编程方式为您转换data
。
dataType: json
,
明文dataType: text
documentation中可以找到更多内容。
您应该将
从 1.8版开始,complete
方法更新为done
以获取成功条件,将fail
更新为请求失败时。
complete
已弃用,它已替换为always
,后者会返回data
或jqXHR
个对象。成功complete
将根据data
的功能返回done
个对象。