帖子
帖子
用户
博客
课程
显示全部楼层
2
帖子
0
勋章
24
Y币

[问题求助] 关于安卓6.x版本使用api.ajax超时,无法发送请求的问题

[复制链接]
发表于 2023-11-13 16:37:12
本帖最后由 BIP144722 于 2023-11-13 16:48 编辑

1. 关于使用国产e人e本平板时,在安卓6.x版本下,使用数据流量访问app(非AVM),使用api.ajax时,访问有的地址无法得到服务端响应,直接返回如图1所示,连接超时(是所有的请求都发不出去)
2. 后续在代码中进行测试,如图2中两个url均为互联网公开的api接口,网络状态和设备与系统完全相同的情况下,第一个url可以访问成功,第二个url无法访问成功(是请求根本没有到达服务端)。

PS1: 如果不使用api.ajax方法,直接使用fetch方法来请求,没有任何问题!
PS2: 所以,是否是api.ajax的兼容性问题,还是api.ajax对不同域名或https证书有限制?(但第二个url也是合法机构颁发的CA证书)。
PS3: 以上问题,均在安卓6.x系统版本(低版本)下发现,高版本安卓一切正常。
希望得到大神解答!

图1

图1


图2

图2



380
帖子
4
勋章
6
Y币
您好,换一个地址,不要测试git, git 服务器在国外吧
2
帖子
0
勋章
24
Y币
本帖最后由 BIP144722 于 2023-11-15 18:01 编辑
技术咨询-F · 2023-11-14 14:31您好,换一个地址,不要测试git, git 服务器在国外吧

你好,实际项目中,我们访问的服务器是在国内的(git这个只是用来比喻此问题)。
而且这个git的地址,直接浏览器打开或直接请求,都是通的,“就是用api.ajax时不通”
在WIFI的情况下全都正常的,唯独是流量 + 安卓6.x版本的设备报以上超时错误(高版本安卓用流量没问题)。

但是如果换成fetch方法没有任何问题? 这是api.ajax不兼容吗?

我们也试过以下的其他地址,也是没问题的


655496f16ff73.png
2
帖子
0
勋章
24
Y币
技术咨询-F · 2023-11-14 14:31您好,换一个地址,不要测试git, git 服务器在国外吧

你好,感谢回复!

1. 图中的git地址,直接用浏览器打开或请求工具发送请求,都是通的,或者在app中使用fetch方法请求也是通的,唯独api.ajax不通(提示超时)。
2. 实际项目中,我们的请求地址,是国内的服务器,并且是有域名的。(图中的git地址是用来比喻的)

使用api.ajax实际测试结果:
1. 使用WIFI访问时,任何条件下都没有问题
2. 使用流量访问时,如果是高版本安卓,没有任何问题,如果是6.x版本安卓,api.ajax的回调返回超时code =1。
3. 把api.ajax换成fetch时,没有任何问题

由此得出,是否是api.ajax对于低版本6.x安卓和数据流量,又或者是域名和https证书做了限制?否则为什么用fetch没有这个问题呢?

希望再次得到大神解答!

380
帖子
4
勋章
6
Y币
BIP144722 · 2023-11-15 18:14你好,感谢回复!

1. 图中的git地址,直接用浏览器打开或请求工具发送请求,都是通的,或者在app中使用fetch方法请求也是通的,唯独api.ajax不通(提示超时)。

config.xml 中配置为false测试看看

配置是否检查https证书是受信任的
字段名:checkSslTrusted

取值范围:true|false

默认值:true

描述:用于配置是否检查https证书是受信任的。如果https服务器端证书不是正规机构颁发的,则需要配置false,否则应用将无法访问数据。

配置示例:

<preference name="checkSslTrusted" value="false" />



配合服务端日志排查呢,既然超时,说明和服务端也有关系吧
2
帖子
0
勋章
24
Y币
技术咨询-F · 2023-11-15 18:23config.xml 中配置为false测试看看

配置是否检查https证书是受信任的

你好!
本项目的config本来就配置不检测证书的,如图
服务端也有排查过,我们所讨论的超时,并不是服务端响应的超时,是api.ajax这个方法响应的超时,请求都没有发送到服务端呢~ (得不到服务端的响应)

希望再次得到您的回复,以便我们排查原因,谢谢!


6554a2c1e0d51.png


380
帖子
4
勋章
6
Y币
BIP144722 · 2023-11-15 18:54你好!
本项目的config本来就配置不检测证书的,如图
服务端也有排查过,我们所讨论的超时,并不是服务端响应的超时,是api.ajax这个方法响应的超时,请求都没有发送到服务端呢~ (得不到服务端的响应)

使用抓包工具,抓包看看,请求发出没有

“使用流量访问时,如果是高版本安卓,没有任何问题,如果是6.x版本安卓,api.ajax的回调返回超时code =1”

只有你这个设备上有这样的问题吗?如果是的话,可能和设备系统有关,我这也无法帮你定位。
2
帖子
0
勋章
24
Y币
技术咨询-F · 2023-11-15 19:16使用抓包工具,抓包看看,请求发出没有

“使用流量访问时,如果是高版本安卓,没有任何问题,如果是6.x版本安卓,api.ajax的回调返回超时code =1”

你好!
之前尝试抓包了,没有看到发出请求。
目前测试把访问域名换成访问ip地址,就可以正常发出请求了,可以考虑是域名或者代理转发的问题了吧?
您需要登录后才可以回帖 登录

本版积分规则