低版本webview无法请求jquery ajax

大家好,我是烤鸭:
    又来踩坑了。

1.    场景复现


    有反馈我们的H5页面,无法正确显示页面。就类似下图这样,ajax没法请求到数据。

                                                    
    之前测试的时候是在web端做的测试,用安卓7.0和8.0的手机都试了一下,是没有问题的。
    后来借到一台小米3(4年前的机型?)搭载的是安卓5.0吧,确实出现这个问题了。(后台收不到请求,估计是js报错
    由于不能看到哪里报错,只能一点点删代码,看是哪个地方不兼容。

2.    猜测问题


    2.1    使用sessionStorage,可能是低版本安卓不支持sessionStorage

 sessionStorage.removeItem["test_xxx"];

    2.2    使用h5的函数(location.toString())不支持,目的是获取浏览器地址栏

var s = location.toString();

   2.3    ajax方法有问题,代码如下:

  //获取该手机最新订单function getLatestOrder(){$.ajax( {    url : prefix+'/getLatestOrder',// 跳转到 action    data:{    'mobile' : mobile},    type:'post',    cache:false,    dataType:'json',    //跨域dataType:'jsonp',   jsonp : 'callback',success : function(data) {console.log(data);if (data.code == "100") {window.location.reload();} else {//错误提示console.log(data.msg);}},error : function() {alert("异常!");}});}


    后来一点点排查,2.2导致请求无法发出,改掉location函数之后,发现后台可以收到请求(返回值正常),但是页面没有收到返回值,是2.3的问题。

3    解决方式


    将jquery的ajax改为原生的ajax,比如上面的方法改为

  //获取该手机最新订单function getLatestOrder() {var sendData = {mobile:mobile};xhrAjax('post',prefix + "/getLatestOrder", sendData, function(data){var data1 =JSON.parse(data);if (data1.code == "7016") {window.location.reload();} else {//错误提示console.log(data1.msg);}}, function(error){console.log(error);showError("异常!");});}

   xhrAjax.js

function xhrAjax(type, url, data, success, failed){    // 创建ajax对象var xhr = null;if(window.XMLHttpRequest){xhr = new XMLHttpRequest();} else {xhr = new ActiveXObject('Microsoft.XMLHTTP')}var type = type.toUpperCase();// 用于清除缓存var random = Math.random();if(typeof data == 'object'){var str = '';for(var key in data){str += key+'='+data[key]+'&';}data = str.replace(/&$/, '');}if(type == 'GET'){if(data){xhr.open('GET', url + '?' + data, true);} else {xhr.open('GET', url + '?t=' + random, true);}xhr.send();} else if(type == 'POST'){xhr.open('POST', url, true);// 如果需要像 html 表单那样 POST 数据,请使用 setRequestHeader() 来添加 http 头。xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");xhr.send(data);}// 处理返回数据xhr.onreadystatechange = function(){if(xhr.readyState == 4){if(xhr.status == 200){success(xhr.responseText);} else {if(failed){failed(xhr.status);}}}}
}

4.    总结


因为这个app其他页面也用过jq的ajax,很难想象是jquery的问题。
由于改的急,没有尝试更多的方案。
后来看了一个帖子,让安卓按照上面的重新给我打个包。

https://blog.csdn.net/u013540324/article/details/64573785

还是不行,也是后台可以收到请求(返回值正常),但是页面没有收到返回值。
虽然知道怎么处理了,但是还是无法解释为什么,mark一下,给有相同问题的朋友提个醒。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/412848.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[css] CSS3中的transition是否可以过渡opacity和display?

[css] CSS3中的transition是否可以过渡opacity和display? transition过渡display是有一个前提条件: 浏览器渲染是在每一帧的最后,每一帧都会执行以下操作:js执行2.style加持3.layout4.paint5.composite在js执行过程中, 遇到DOM操作&#xff…

Ubuntu 无法应用原保存的显示器配置

Ubuntu开机之后页面出现:无法应用原保存的显示器配置所选模式均不匹配可能的模式:为 CRTC 63 尝试模式CRTC 63:尝试 800x60060Hz 模式输出在 1366x76860Hz (通过 0)CRTC 63:尝试 2560x160060Hz 模式输出在 1366x76860Hz (通过 0)C…

由excel导出引起的cpu 100% 和gc 的问题

大家好,我是烤鸭: 记一次 由excel导出 导致的cpu飙升200%,jvm 内存不足。 1. 场景复现 前端页面导出Excel,之前导出4,5W条数据都没什么问题的。 今天业务突然反馈说导出不了了,我试着导出了2w数据&#xff0…

[css] 说下background-color:transparent和opacity:0的区别是什么?

[css] 说下background-color:transparent和opacity:0的区别是什么? background-color:transparent: 只是把背景色设置为透明,并不会影响元素中的内容。可以利用 transparent 进行三角、扇形的设置。opacity: 0: 会影响整个元素,元素的内容也会…

win11耳机和扬声器怎么分开控制音量?

win11耳机和扬声器怎么分开控制音量? 有时候有这种需求,在办公位置工作听耳机,拔掉耳机后,扬声器需要自动禁止声音 1,搜索并打开Realtek Audio Console 2,点击左下角“设备高级设置”,播放设备…

ngix莫名挂掉 signal process started

大家好,我是烤鸭: 又到了采坑实录。ngix莫名挂掉 error.log一直出现 signal process started 查看了access.log和error.log access.log: 43.245.218.208 - - [06/Jan/2019:18:08:43 0800] "GET / HTTP/1.1" 200 555 "-"…

[css] z-index有时不起作用的原因是什么?怎么解决?

[css] z-index有时不起作用的原因是什么?怎么解决? 根元素 (HTML),z-index 值不为 "auto"的 绝对/相对定位,一个 z-index 值不为 "auto"的 flex 项目 (flex item),即:父元素 display: flex|inline…

Docker安装nacos

docker安装nacos docker创建nacos容器 第一种(不推荐,因为不能连接数据库,进行持久化) #搜索可以使用的镜像 docker search nacos #拉取镜像 docker pull nacos/nacos-server# 运行nacos docker run \ --name nacos -d \ -p …

HttpsURLConnection 返回 400

大家好,我是烤鸭: 记一次 由 HttpsURLConnection 引起的返回值400的错误。 1. 场景复现 今天线上调用第三方接口的时候突然报错了。 严格来说也不是报错,就是发的请求不通了,http报400的错误。 问了下对接方&…

[css] 你有了解css计数器(序列数字字符自动递增)吗?如何通过css的content属性实现呢?

[css] 你有了解css计数器(序列数字字符自动递增)吗?如何通过css的content属性实现呢? counter-reset:设置计数器 counter-reset: count 0 /* 计数器从1开始 */ counter-increment: 递增数值 counter-increment: count 2 /* 用于c…

npm、webpack、vue-cli 快速上手版

Node.js npm 什么是Node.js 以及npm 简单的来说 Node.js 就是运行在服务端的JavaScript,基于Chrome V8 引擎的。 npm 是Node.js 的包管理工具。 npm的安装和更新 Node.js下载安装 Node.js 官网下载安装。npm自带的包管理工具。 查看安装版本信息: -…

idea修改maven helper右键run maven的位置

idea修改 maven helper右键run maven的位置 现在调整到最上面后,进行maven的命令操作就非常的方便了!

springboot webservice cxf 客户端调用

大家好&#xff0c;我是烤鸭&#xff1a; 这篇文章分享的是xcf webservice接口调用。如果接口提供方要求是webservice调用的话&#xff0c;可以参考这篇内容。 1. pom文件 <dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-front…

[css] 说说你对css的will-change属性的理解,它有什么作用呢?

[css] 说说你对css的will-change属性的理解&#xff0c;它有什么作用呢&#xff1f; 告诉浏览器,这个元素的某些属性可能会频繁变动触发回流&#xff0c;要求浏览器给予资源进行优化&#xff0c;一般浏览器会给这个元素单独生成一个图层渲染,gpu加速等提前优化手段 不应过度使…

MFC版链表实现稀疏多项式相加减

链表实现多项式运算&#xff08;加减&#xff09;MFC可视化版题目 设计一个一元稀疏多项式简单计算器。 基本要求 &#xff08;1&#xff09;输入并建立两个多项式&#xff1b; &#xff08;2&#xff09;多项式a与b相加&#xff0c;建立和多项式c&#xff1b; &#xff08;3&a…

WindTerm导出会话

WindTerm的session配置并无法被适用于其他软件中&#xff0c;所有的session保存在WindTerm安装路径下的profiles文件夹内&#xff0c;如果需要更新版本或回退&#xff0c;将所安装的版本覆盖即可&#xff0c;或是将profiles复制于新路径下。 图标闪烁设置、会话保存-导入导出 …

[官方] mysql 性能优化文档(中英文自译)

大家好&#xff0c;我是烤鸭&#xff1a; 根据官方文档翻译并精简部分内容。建议有时间的朋友下载原版查看&#xff0c;全文106页pdf&#xff0c;快的话1-2天就能看完。自己翻译的有些地方可能不完整&#xff0c;欢迎指正。官方pdf下载&#xff0c;需登录&#xff1a;https://w…

使用wiki.js部署团队知识库

1.安装NODE.JS 参考教程 https://xie.infoq.cn/article/6820ea5b625f4e163ccb76cec 1.1 下载nodejs安装包 http://nodejs.cn/download/ 1.2 上传到服务器soft目录后进行解压 # 解压 tar -xf node-v16.18.0-linux-x64.tar.xz # 删除安装包 rm -rf node-v16.18.0-linux-x64.ta…

[css] transition、animation、transform三者有什么区别?

[css] transition、animation、transform三者有什么区别&#xff1f; transition:比较简单的过度动画animation: 使用keyframe自定义动画,比较详细的动画过程transform: 2D或者3D的变形属性个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c…

mysql性能调优精简版

大家好&#xff0c;我是烤鸭&#xff1a; 这是根据官方文档提炼出的mysql性能优化总结。 想看完整翻译版的请看 https://blog.csdn.net/Angry_Mills/article/details/87720396 1. 成本优化 成本包含&#xff1a; IO 和 CPU 从硬盘读取的花费 模型包含&#xff1a; 全表…