欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

javascript - thinkphp开发的页面在手机浏览器ajax兼容问题

程序员文章站 2024-04-04 13:45:23
...
一个简单的表单提交的页面,在chrome&ie下测试正常,在安卓手机上失效。

环境:

  • thinkphp 3.2

  • jquery 1.11.3

  • layer-v2.1 弹层组件

目前做了2个例子,请求正常的有:

$.post("/api/sms/send_sms.php", {phone:phone}, function(result) {
    if(result.status==1){
        resetCode(); //倒计时
    }else{
        layer.open({
            title: '错误',
            type: 1,
            skin: 'layui-layer-red', //样式类名
            closeBtn: true, //不显示关闭按钮
            shift: 2,
            shadeClose: true, //开启遮罩关闭
            content: result.msg
        });
    }
});
        

测试chrome & ie & 手机UC浏览器 & 微信 正常而换用

$.post("/index.php?m=active&a=save_info", {phone:phone}, function(result) {
    if(result.status==1){
        resetCode(); //倒计时
    }else{
        layer.open({
            title: '错误',
            type: 1,
            skin: 'layui-layer-red', //样式类名
            closeBtn: true, //不显示关闭按钮
            shift: 2,
            shadeClose: true, //开启遮罩关闭
            content: result.msg
        });
    }
});
        

后,在手机浏览器中不能正常弹出layer层。

2者区别主要的post的url不一样,问题很诡异,请前端大神看看

回复内容:

一个简单的表单提交的页面,在chrome&ie下测试正常,在安卓手机上失效。

环境:

  • thinkphp 3.2

  • jquery 1.11.3

  • layer-v2.1 弹层组件

目前做了2个例子,请求正常的有:

$.post("/api/sms/send_sms.php", {phone:phone}, function(result) {
    if(result.status==1){
        resetCode(); //倒计时
    }else{
        layer.open({
            title: '错误',
            type: 1,
            skin: 'layui-layer-red', //样式类名
            closeBtn: true, //不显示关闭按钮
            shift: 2,
            shadeClose: true, //开启遮罩关闭
            content: result.msg
        });
    }
});
        

测试chrome & ie & 手机UC浏览器 & 微信 正常而换用

$.post("/index.php?m=active&a=save_info", {phone:phone}, function(result) {
    if(result.status==1){
        resetCode(); //倒计时
    }else{
        layer.open({
            title: '错误',
            type: 1,
            skin: 'layui-layer-red', //样式类名
            closeBtn: true, //不显示关闭按钮
            shift: 2,
            shadeClose: true, //开启遮罩关闭
            content: result.msg
        });
    }
});
        

后,在手机浏览器中不能正常弹出layer层。

2者区别主要的post的url不一样,问题很诡异,请前端大神看看

先都注释掉function里的代码,直接alert(1),看看是不是2个方法都可以执行,然后一点点排除

是没弹出来还是layer的样式没加载进来啊

thinkphp是不是有做一些过滤,诸如验证是否登录之类的。建议还是console.log(result);慢慢排查吧。