欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

firefox和chrome中 JQuery的ajax组件执行差异

发布时间:2025/5/22 编程问答 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 firefox和chrome中 JQuery的ajax组件执行差异 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

2019独角兽企业重金招聘Python工程师标准>>>

最近做项目,发现了一个有意思的问题,自己解决不了,然后找别人一块想,已解决; 问题为:一个post请求,在chrome正常执行;在firefox中无法执行(不报错,只是请求失败,后台接受不到); 原代码如下:

function addCustom(o) {var qy = o[0]["value"];// regionIdqy = qy.replace(" ", "");var glxs = o[1]["value"];//var km_ratio = o[2]["value"];if (km_ratio == "") {alert("请设置扣罚系数");return;} else if (qy == "") {alert("请设置扣罚区域");return;}if (jQuery.inArray(qy, regionArr) > -1) {alert("请勿重复添加自定义区域!");} else if (qy.length > 5 && qy.length < 8) {var num = (qy + "").substring(4);if (num != '00') {oilForm(km_ratio, qy);// 执行添加} else {alert("请选择县级区域!!");}} else {alert("请选择县级区域!!"); }location.href = '/monthTask/punish'; } /* * 添加自定义扣罚系数区域 */ function oilForm(km_ratio, qy) {var newPunish = {"regionId" : qy,"rate" : km_ratio}// 发送请求$.ajax({url : 'monthTask/punish',// 添加公里系数设置区域type : 'post',data : newPunish,dataType : "json",success : function(result) {alert("已成功添加");location.href = '/monthTask/punish';},error : function(data) {if (500 == data.status) {alert("系统异常,请稍后重试!");} else {location.href = '/monthTask/punish';}}});}
  • 分析:当执行addCustom方法,并执行到oilForm方法时,oilForm执行ajax方法,firefox没有等到ajax请求执行完,就执行了页面跳转操作;
  • 相关原理:chrome将ajax作为一般进程处理,而firefox将ajax作为后台进程(daemon Thread)处理;
  • 解决方案:在ajax请求之后不要进行其他的业务操作;将所有的相关逻辑都写进ajax里; 修改后的addCustom方法
function addCustom(o) {var qy = o[0]["value"];// regionIdqy = qy.replace(" ", "");var glxs = o[1]["value"];//var km_ratio = o[2]["value"];if (km_ratio == "") {alert("请设置扣罚系数");return;} else if (qy == "") {alert("请设置扣罚区域");return;}if (jQuery.inArray(qy, regionArr) > -1) {alert("请勿重复添加自定义区域!");} else if (qy.length > 5 && qy.length < 8) {var num = (qy + "").substring(4);if (num != '00') {oilForm(km_ratio, qy);// 执行添加} else {alert("请选择县级区域!!");location.href = '/monthTask/punish';}} else {alert("请选择县级区域!!");location.href = '/monthTask/punish';}}

现在,当方法中执行到ajax请求时,其后面没有任何逻辑操作;问题就解决了.

转载于:https://my.oschina.net/u/1590027/blog/689686

《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读

总结

以上是生活随笔为你收集整理的firefox和chrome中 JQuery的ajax组件执行差异的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。