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

言归正传,最近遇到了几次ajax兼容性问题,因此进行了归纳总结,已备以后查看。

function dealMessageById(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);

          //以上3个值所对应的意义进入另一篇博文status、readyState、textStatus状态查看

        }
});
};

常见情况:

  1.如果你是火狐浏览器(Firefox),出现错误调用error方法或者ajax请求了多次,那么极有可能是异步请求的原因。

   添加   async  : false  ,

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

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

  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。

Ajax出现error常见情况(详细版)-火狐浏览器(Firefox)兼容性问题的更多相关文章

  1. linux版火狐浏览器部署详解

    Firefox下载地址 Firefox全历史版本下载: http://ftp.mozilla.org/pub/firefox/releases/ Firefox驱动问题下载  https://gith ...

  2. 火狐浏览器Firefox Firebug使用方法

    什么是Firebug 从事了数年的Web开发工作,越来越觉得现在对WEB开发有了更高的要求.要写出漂亮的HTML代码:要编写精致的CSS样式表展示每个页面模块:要调试javascript给页面增加一些 ...

  3. 火狐浏览器Firefox 如何使用iMacros 自动填写网页表单

    1 我们首先访问一个想要自动填写表单的网站.我们以百度为例,右侧有登录窗口.   2 然后我们点开刚安装上的iMacros插件,一般安装之后就会自动出现在浏览器的某个地方,点击记录选项卡,再点击记录. ...

  4. 火狐浏览器Firefox上DownThemAll插件

    DownThemAll插件支持断点续传.多线程下载,可以大幅度提高下载速度. 在Windows平台上,要下载大量的文件,迅雷自然是首选:但在非Windows平台上,只要安装一个火狐浏览器,再安装Dow ...

  5. 火狐浏览器Firefox 如何下载网页的SWF视频,硅谷动力的网站视频怎么下载

    1 使用火狐浏览器查看到底视频在哪里,我随便开了一段视频,发现这个SWF(外框套了一个Control.swf,内层才是真实的09-class.swf)   2 我们从下面这一段代码中进行分析 < ...

  6. 导致提前layout的常见情况(通过chrome浏览器自带的控制台可以看到)

    1.通过js获取DOM属性 2.增/删/DOM节点 3.改变浏览器窗口大小 4.改变字体 5.激活css伪类 6.修改DOM的属性,涉及到大小.位置等(该颜色不会激活提前的layout) 7.其他js ...

  7. 火狐浏览器Firefox不支持alt怎么

    因为HTML代码的解析不同,需要把标签文字"alt"换成"title",就可以在FireFox中正常显示了. 如下所示,IE对于alt和title均可以支持 但 ...

  8. 火狐浏览器FireFox 如何将整个网页保存为图片

    使用Friefox的Pearl Cresent Page Saver插件 如图所示网页有很长的滚动条 点击右下角的该插件选项,将整个页面保存为图片 在桌面上得到了这样一个文件,大小是1263×6083 ...

  9. 火狐浏览器Firefox如何使用插件,火狐有哪些好用的插件

    1 CoorPreviews 不打开网页链接预览该网页的内容. 预览如图所示: 点击关闭旁边的钉子可以让该窗口保持开着并且浏览速度加快.这对于快速浏览图片时非常有用. 2 FoxTab 3D方式预览网 ...

随机推荐

  1. 使用Adorner显示WPF控件的边界点

    原文:使用Adorner显示WPF控件的边界点 当我们拖动WPF控件时,我们为了更清楚地需要显示控件,一般我们会在WPF控件所围成的矩形区域的四个边界点上作一个特殊的记号(比如圆点).如下图: 在Wi ...

  2. 不使用运算符(+、-、*、/) 来进行四则运算(C#)

    最近在LeetCode 上刷题,遇到一个非常有趣的题目,题目的大概意思就是在不使用运算符的情况下实现两个数的加法...原题点这里>>> 说实话,刚看到这题目,我是一脸懵逼的. 后来仔 ...

  3. 异步Servlet的理解与实践

    AsyncContext理解 Servlet 3.0(JSR315)定义了Servlet/Filter的异步特性规范. 怎么理解"异步Servlet/Filter"及其使用情景? ...

  4. jqmobi api 详细解说

    0.$().get()得到是相应的元素. 如: $elem=$(".panal").get(0));   //得到了第一个panal类的元素 $elem_id = $elem.id ...

  5. 用Delphi将数据导入到Excel并控制Excel

    一.调用Excel的方法:一般情况下有两种方法调用Excel:1.  直接使用Delphi自带的组件:在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWo ...

  6. VC中出现“烫”和“屯”的原因(栈区的每一个字节都被0xCC填充了,也就是int 3h的机器码,动态分配的堆,VC的Debug用0xCD填充堆的空间,就出现了“屯”)

    相信经常用VC的朋友对屏幕输出的一大堆“烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫”不会陌生,但是也许会很奇怪,为什么会出现“烫”字呢?莫非改程序导致系统运行缓慢,发热过高???非也!下面让我解释 ...

  7. 起调UWP的几种方法

    原文:起调UWP的几种方法 由于种种原因吧,我需要使用一个WPF程序起调一个UWP程序,下面总结一下,给自己个备份. 启动UWP程序的关键是协议启动 给我们的UWP应用添加一个协议,like this ...

  8. C#破解access数据库密码方法

    原文:C#破解access数据库密码方法 using System; using System.Collections.Generic; using System.IO; using System.L ...

  9. 财富500强的前10个公司里有8个公司在使用Qt(Qt自己认为的优点是:直觉主义、跨平台、节省时间),以及一些商业案例

    8 of Top 10 Fortune 500 use Qt Qt is the software development framework of choice by engineers in ov ...

  10. 基于VUE实现的新闻后台管理系统-二

    基础环境及最后的开发效果已完成说明,接下来就开始配置. ¶npm初始化 新建项目文件夹VueDemo,在其内执行如下脚本 npm init -y 安装vue-cli构建包 yarn add vue-c ...