今天在写一个项目功能的时候,明明应该不会有错的地方,却一直跟预期的效果发生偏差。自己也检查过后台的数据,结果发现,造成这个原因居然是因为:dataType : 'json'
。
事件发生背景
1. 发生错误的地方
//其他的都没有错误,我们来关心一下重点是我们添加了dataType:'json'这一句。
$.ajax({
type:'POST',
url:'XXXXX',
dataType:'json',
contentType : "application/json",
data : JSON.stringify(sendData),
success : function(data) {
alert("MDZZ!!!");
}
error:function(){
alert("失败是应该的~~~~~");
}
});
2. 结果:
结果是执行了错误的回调函数,弹出了失败是应该的
~。
3. 解决方法
将dataType:'json'
这一行去掉。
4. 解决结果
结果调用了success方法的回调函数,跳出了MDZZ这句话。
5. 原因
经过上网查了好几个网页的资料,能够证实出现这个原因是因为jQuery1.4以后的版本,对JSON格式有了更严格的标准。jquery 1.4以后对json格式变严格了,也就是说必须要这种格式的{"键":"值","键":"值"};
像原来的{键:值,键:值}
和{'键':'值','键':'值'}
这种都是错误的,不合标准,所以jquery返回error。