jquery 1.4中ajax的dataType设置问题

本文讨论了在使用jQuery AJAX请求时,未正确设置dataType导致数据接收错误的问题,并通过实例验证了解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天遇到的一个ajax的dataType问题,请求成功时后台返回了一个字符串“true”,前台接收判断条件不成功。js代码如下:

function sendReplacePayUrl(){
var friendMail = $('#friendMail').val();
var leaveMessage = $('#leaveMessage').val();

$.ajax( {
type : "POST",
url : basePath+"/**/**/****.sc",
data : {
"friendMail": friendMail,
"leaveMessage": leaveMessage
},
success : function(data) {
if(data=="true"){
alert("邮件发送成功!");

}else{
alert("邮件发送失败!");

}
}
});
}

跟踪结果后台返回了“true”后,js弹出的框一直是提示 邮件发送失败! 的信息,在前台JS中加入 alert(data);弹出的结果确认是“true”,一直认为方法有问题,检查对比其他测试成功过方法,发现并没有错误。开始怀疑是 data 的接收类型有问题,百度了一下,说如果没有设置dataType,默认的类型就是 text,接收字符串直接判断显示是没有问题,但奇怪我写的这个方法为什么不行呢? 查看代码,在这步之前还有一个ajax的请求,js如下:

function friendPay(){
var id = $('#combineId').val();
var payurl = '获取地址失败';
$.ajax( {
type : "POST",
url : basePath+"/**/**/****.sc",
data : {
"combineId": id
},
dataType : "json",
success : function(data) {
payurl =data.payUrl
//省略
...
}
});
}

friendPay()函数执行后弹出框之后点击弹出框中的按钮执行sendReplacePayUrl(),猜想是不是因为之前执行friendPay()时设置了dataType : "json"的原因,导致之后执行sendReplacePayUrl()没有设置dataType,返回的数据类型默认之前设置的dataType : "json"。为了验证这点,把friendPay()中dataType : "json",去除,sendReplacePayUrl()不变,重新执行后,sendReplacePayUrl()接收data判断正常;之后再验证,将friendPay()中dataType : "json"再加上,在sendReplacePayUrl()中加上dataType : "text",重新执行后,sendReplacePayUrl()接收data判断正常。

通过上面的验证,个人得出的结论, [color=red]jquery 1.4中ajax的dataType如果没有设置,默认返回的data 就是text类型,注意前提是,在这ajax之前上一步执行的ajax方法中datatype也必须是默认的或是设置为 text, 若上一步执行的ajax的dataType不是text,则之后想要返回的data与上一步不同的类型,则需要在方法中添加相应的dataType[/color].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值