火狐浏览器允许ajax,Ajax出现error常见状况(详细版)-火狐浏览器(Firefox)兼容性问题...

本文主要探讨了前端开发中常见的Ajax兼容性问题,包括火狐浏览器的异步请求问题、数据类型不匹配、跨域问题以及一些不常见情况的解决方案。例如,设置`async:false`来避免Firefox的异步问题,确保后台返回的数据类型与`dataType`一致,使用`dataType:'jsonp'`解决跨域问题,并给出了针对不同问题的相应解决办法。
摘要由CSDN通过智能技术生成

做为一个程序员,遇到兼容性问题真的很苦恼,尤为是对我这种前端小菜鸡来讲遇到了甚是凄惨。通常来讲兼容性问题出现率Chrome < IE < Firefox  (╯°Д°)╯︵┴┴ 。html

言归正传,最近遇到了几回ajax兼容性问题,所以进行了概括总结,已备之后查看。前端

functiondealMessageById(messageId,dealFlag)

{

$.ajax({

url: getRootPath()+ "/usercenter/message/UserMessage.do?method=DealMessageById",

type:"post",

async:false,//通常都不写,默认为true。具体信息看下面

data: {"messageId": messageId,"dealFlag": dealFlag

},

dataType: 'json',      //data值类型

contentType:"application/x-www-form-urlencoded; charset=UTF-8",

success:function(data) {if(data.code == 200)

{

systemMessageInit();

refreshMessage();

$("#systemTable").html("系统消息("+data.siteInforCount+")");

}else{

dialog.alert('失败', '失败');

}

},

error:function(XMLHttpRequest, textStatus, errorThrown) {

alert(XMLHttpRequest.status);

alert(XMLHttpRequest.readyState);

alert(textStatus);程序员

}

});

};

常见状况:json

1.若是你是火狐浏览器(Firefox),出现错误调用error方法或者ajax请求了屡次,那么极有多是异步请求的缘由。跨域

添加 async  : false  ,浏览器

-> async. 默认是 true,即为异步方式,$.ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发$.ajax里的success方法,这时候执行的是两个线程。服务器

-> async 设置为 false,则全部的请求均为同步请求,在没有返回值以前,同步请求将锁住浏览器,用户其它操做必须等待请求完成才能够执行。app

2.后台返回的dataType类型和前台js写的不一致会跳入error异步

传的不是json格式的数据就不用写 dataType : 'json' ,

json格式错误也会跳入error.{"test":1} 因此要注意格式。

在不须要返回值的状况下,扔按模板格式,设置了dataType:"json",参数;这时候,ajax传值正确时,出现200返回成功状态下报错的特殊状况。

3.url:'http://192.168.1.100:8080/Xxx

若是你请求的数据不在本地或者不在同一服务器中,那么就多是跨域问题,要用jsonp,即dataType :'jsonp' , 固然这意思最基础的方法,jsonp和json的格式仍是有点小区别的:  jsonp比json多了个方法,即  json= " json格式数据 ",jsonp= "方法名(json格式数据)",至于跨域的详细的解释和解决方法找度娘吧。

不常见的状况:

1.data没有写

解决方法:data为空也必定要传"{}";否则返回的是xml格式的。并提示parsererror. data:"{}"。

2.url路径有中文

解决方法:去掉中文。

3.传的数据格式ajax不支持

解决方法:换成json或其余ajax支持的数据格式。

4.字符编码不匹配

解决方法:统一UTF-8。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值