此问题全网唯一!

关于MultiActionController异步请求Ajax,pc端正常,手机端报error问题;此问题一般是通过setInterval,seTimeout,做Ajax轮询时会产生此问题;

其实最主要问题有两个:

1.写 setInterval或seTimeout这个方法时 方法中直接写要运行的函数名,并赋值一个变量,这个变量必须是全局变量;

2.  在ajax中 同步参数这个async必须是false;[ async : false, ],否则pc端游览器正常,手机端游览器报error错误;这个错误并不是数据       格式不对而引起的,而这是因为手机端在轮询调取ajax时 ajax没有同步而造成了互相之间冲突;

下面是一个获取图片上传进度的一段 js 代码图片:

下面是 js 完整代码:

//每100ms获取一次图片上传进度
var intervalId;
function interval() {intervalId = window.setInterval(showPercent, 100)
}//获取图片进度数据
function showPercent() {$.ajax( {type : "POST",contentType : false,async : false,cache : false,url : "intoNetTCSubmit.htm?method=selectUploadPercent",dataType : "json",success : function(data) {console.log(data);var end = 0;var per = 0;end = data[0].end;per = data[0].percent + "%"console.log(per);console.log("end:" + end);$("#percent").val(data[0].percent);//图片上传进度$("#sum").html(data[0].sum == 0 ? 1 : data[0].sum);//第几张图片$("#per").html(per);if (end == '-1') { //图片上传结束标识stopInterval();//图片上传完成session重置clearPercent();}
},
error : function(data) {console.log(data);stopInterval();clearPercent();alert("ajax异常!!!");}});
}//清除进度数据
function clearPercent() {$.ajax( {type : "POST",contentType : false,async : false,cache : false,url : "intoNetTCSubmit.htm?method=clearUploadPercent",dataType : "json",success : function(data) {console.log("ddd:"+data);},});
}//清除setInterval
function stopInterval() {window.clearInterval(intervalId);
}

java 代码:

  public ModelAndView selectUploadPercent(HttpServletRequest request,HttpServletResponse response){System.out.println("方法进入controller");HttpSession session = request.getSession();int percent = session.getAttribute("upload_percent") == null ? 0:                                                                                                       Integer.parseInt(session.getAttribute("upload_percent").toString());int sum = session.getAttribute("upload_sum") == null ? 0: Integer.parseInt(session.getAttribute("upload_sum").toString());int end = session.getAttribute("upload_end") == null ? 0: Integer.parseInt(session.getAttribute("upload_end").toString());String jsonStr = "{percent:'+percent+',sum:'+sum+',end:'+end+'}";Map<String, Integer> map = new HashMap<String, Integer>();try{map.put("percent",percent);map.put("sum",sum);map.put("end",end);JSONArray json1 = JSONArray.fromObject(map);//将json数据返回response.getWriter().write(json1.toString());}catch (Exception e){e.printStackTrace();}return null;}//数据复原public void  clearUploadPercent(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException
{HttpSession session = request.getSession();session.setAttribute("upload_percent",0);session.setAttribute("upload_sum",1);session.setAttribute("upload_end",0);Map<String, Integer> map = new HashMap<String, Integer>();map.put("percent",0);map.put("sum", 0);map.put("end", 0);JSONArray json1 = JSONArray.fromObject(map);response.getWriter().write(json1.toString());}

关于MultiActionController异步请求Ajax,pc端正常,手机端报error错误;此问题一般是通过setInterval,seTimeout,做Ajax轮询时会产生此问题;相关推荐

  1. html手机pc不同页面,PC端和手机端如何同时生成静态页

    静态页是和图片类似的静态资源,访问静态资源不会经过程序处理,不会根据浏览器返回不同页面.要同时支持PC端和手机端浏览器,且要生成静态页时,最好使用bootstrap之类的技术,实现自适应页面设计. 如 ...

  2. 【工具】PC端调试手机端 Html 页面的工具

    一.概述 有一个项目需要在手机端显示一个 web 页面,而每次把应用 launch 后,从手机端看比较麻烦,因此搜罗了几种在 PC 端调试手机端页面的工具. 二.工具 http://fonkie.it ...

  3. [html] 制作一个页面时,需要兼容PC端和手机端,你是要分别做两个页面还是只做一个页面自适应?为什么?说说你的理由

    [html] 制作一个页面时,需要兼容PC端和手机端,你是要分别做两个页面还是只做一个页面自适应?为什么?说说你的理由 两个页面 pc端布局和交互行为跟移动端不一样, 两个页面反而更好维护 个人简介 ...

  4. JavaScript 代码判断:PC端和手机端

    js代码· 示下: <script> if ((navigator.userAgent.match(/(phone|pad|pod|iPad|iPod|iPhone|ios|Android ...

  5. html自动跳转手机端,用JavaScript实现网站自动跳转电脑PC端与手机端不同页面

    前天,有一个网友希望在其微擎系统跳转的时候实现鉴别用户不同的客户端,比如电脑PC端和手机端,实现不同的页面跳转.对于之前老蒋有给其设置过PC端网站然后检测手机访问的时候跳转到WAP网站的案例,对于这个 ...

  6. 前端pc端、手机端适配基本知识

    前端pc端.手机端适配问题 一个项目如何做到手机.电脑共用的方式 1.第一种方式:响应式布局(栅格布局),即通过媒体查询控制css样式,从而实现一套代码手机.电脑共享.一般而言,手机.电脑共享样式,其 ...

  7. python如何判断web访问来源是PC端还是手机端

    以下方法为判断web访问来源是PC端还是手机端 def judge_pc_or_mobile(ua):"""判断访问来源是pc端还是手机端:param ua: 访问来源头 ...

  8. 判断访问来源是pc端还是手机端

    判断访问来源是pc端还是手机端(python) def judge_pc_or_mobile(ua):"""判断访问来源是pc端还是手机端:param ua: 访问来源头 ...

  9. php自动识别pc和手机端并跳转,JS如何实现网站中PC端和手机端自动识别并跳转对应的代码...

    1.  代码场景: 描述:在项目中,一般我们会使用响应式布局的方式或者借助bootstrap等插件来做响应式的网站.但是根据业务的需求,手机端可能会在功能上精简很多,我们也会写两套代码,分别用来实现P ...

最新文章

  1. 【JavaScript】JavaScript基础-变量、运算符与控制语句
  2. 如何查找历史线程阻塞原因_java并发编程-线程状态,线程阻塞方式,阻塞中的线程如何终止?...
  3. Oracle的共享封闭 独占封闭和共享更新封闭 (1)
  4. 源码阅读之Java栈的实现
  5. [20160813]12c开启附加日志问题.txt
  6. 中科燕园GIS外包-----基于ArcGIS的应急平台
  7. JZOJ 5456. 【NOIP2017提高A组冲刺11.6】奇怪的队列
  8. python列表根据值找索引_python实现列表中由数值查到索引的方法
  9. [蓝桥杯][2015年第六届真题]机器人塔(DFS)
  10. python元组为什么不可变_为什么python字符串和元组是不可变的?
  11. WCF学习之旅—WCF概述(四)
  12. LaTeX中常用表格制作方法总结
  13. jsp以及servlet中文乱码问题
  14. 优化算法(一)SGD算法实现
  15. erp生产管理系统对电子工厂发挥的作用
  16. PHP编写两个数的最小公倍数,两个数的最小公倍数怎么求
  17. 《视觉SLAM 十四讲》第五讲 实践:拼接点云-编译遇到的terminate called after throwing an instance of 'pcl::IOException问题及解决方法
  18. 草履虫纳米机器人_草履虫大小的“微型机器人”或许能在人体组织中自由穿梭...
  19. 云计算是什么意思,还是先了解一下云计算技术的基本概念
  20. 锁屏状态下,看到歌手图片

热门文章

  1. Myeclipse中web project 与java project区别
  2. 设置sqlplus 显示列数和行数
  3. Django中的admin
  4. 关于线段树or 树状树状 在二维平面搞事情!Orz
  5. 潭州教育-Python学习笔记@基本数据类型:元祖字典
  6. Redhat6.5安装vnc服务远程桌面
  7. zabbix-server无法启动
  8. ubuntu16.04.3 ntp服务
  9. VBA中的数据字典,可以理解为Java中的Map
  10. ITA结合测试(总结之六:ITA上的时间,与本地时间)