云端笔记
云端笔记
  • 发布:2015-03-20 15:47
  • 更新:2015-03-20 17:16
  • 阅读:2304

【报Bug】iphone6和小米NOTE在非WIFI网络下用AJAX请求有端口的URL失败

分类:HTML5+

问题是这样的:
在公司测试 iPhone6、iPhone6 PLUS 和 小米NOTE时发现,在2G\3G\4G网络下用AJAX请求一个带有端口的URL,会失败。但是请求不带端口的URL就正常!在WIFI网络下请求也正常!
例如在2G/3G/4G网络下请求以下地址:
http://www.xxx.com:8800/index.php 这样的地址就会请求失败
http://www.xxx.com/index.php 这样的地址就能正常请求

该问题经我测试,只存在于 iPhone6(IOS8.1.3)、iPhone6 PLUS (IOS8.1.3)和 小米NOTE(安卓4.4.4) 这三款手机,其他的新款手机没有测试!我测试的其他老版本的手机(iphone4、4S、5、三星的低端安卓手机、魅族手机、小米以前型号的手机等等)不存在该问题,其中iphone4为IOS6系统,iPhone5为IOS8.1系统!

2015-03-20 15:47 负责人:无 分享
已邀请:
DCloud_UNI_FXY

DCloud_UNI_FXY

请求失败的时候,打印一下错误信息。看看具体是什么错误?

我用iphone6 4g 测试了下带端口的请求。没有问题。

你请求的是什么格式的数据?html?json?

如果是json的话,试试把response的content-type设置成application/json

  • 云端笔记 (作者)

    我用的mui封装好的ajax,我看了一下mui里面默认用的就是application/json


        mui.get('http://14.wangqi.net:8800/index.php?getappajax&q=getajaxtest', {}, onSuccess, 'json');  

    // 获取成功函数
    var onSuccess = function(response){
    alert(response);
    }

    我用其他手机无论3G/4G还是WIFI网络访问都没有问题,只有iPhone6 PLUS和小米NOTE用3G/4G访问有问题!代码里的url可以直接使用!

    2015-03-20 17:34

  • DCloud_UNI_FXY

    不是request里边的。是response里的content-type。你服务端设置response的content-type试一下。iPhone6P和小米NOTE的3G/4G运营商和其他手机的运营商一样吗?之前发生过,有用户的3G网络,如果服务端不设置content-type为application/json的话,会认为是html。被运营商之类的插入了html的头和尾。导致js解析json失败。

    2015-03-20 20:29

  • DCloud_UNI_FXY

    测试的话。你可以换成text请求。打印一下response。看看是不是被加入了额外的东西。

    2015-03-20 20:30

  • 云端笔记 (作者)

    果然和运营商有关,移动的就不行,联通的就可以,但是我把服务器的content-type设为application/json后,连联通的都获取不到了,直接status为0。但是无论什么情况下,WIFI都没问题。

    2015-03-23 13:36

  • DCloud_UNI_FXY

    Content-Type设置成:text/plain;charset=utf-8试试

    2015-03-23 18:38

  • 3***@qq.com

    回复 DCloud_UNI_FXY:请问这个服务端设置的response ,是在后台页面发送数据过来的那里吗?

    2018-06-15 09:24

该问题目前已经被锁定, 无法添加新回复