mui苹果端开发出现Script error. filename: lineno:0

本文阅读 4 分钟
广告

本来昨颠儿高高兴兴的,但是在更新功能的时候发现,一直没有测试的项目ios端出现的大问题,大概就是很多对接口的请求其实是无效的,也不报错也不返回任何有价值的信息,就是在控制台一个劲的提示Script error. filename: lineno:0。然后为了解决bug,从下午四点开始,改到了凌晨12点,其实主要的原因就是ios端有更严格的js规范(说白了就是卵用没半点,还严重影响开发的矫情,垃圾ios毁我青春),还有一点就是这个项目是个接盘项目,很多原本开发者放飞自我的写法让我头皮发麻,安装端的修bug封包已经够操蛋。
为了查找问题,真的心累了,ios开发时的控制台根本不告诉我哪里错了,在哪一行,就是不断的的Script error. filename: lineno:0,毫无帮助。

回归这篇文章的本身,在细致的查找审阅,测试后,主要的问题提现在原本的开发人员对接口数据的赋值上。

这是原本对于接口请求的案例。

1.在公共的dataService.js中,定义了所有的接口请求方法,以获取短信验证码为例。

var membershipService = {
    getVertifyCode: function (check_code_token,check_code,m_name,type) {
        var res;
        var vertify_code_url=ROOT_URL + '/m/mail/' + check_code_token + '/' + check_code + '/' + m_name + '/'+type;
        mui.ajax(vertify_code_url,{
            dataType:'json',
            type:'get', 
            timeout:10000, 
            async:false,
            success:function(data){
                res=data;
            },
            error:function(xhr,type,errorThrown){
            }
        });
        return res;
    },
}

以上的代码通过console.log调试,已经证明接口请求是过去了,但是却没有让页面获取到。

2.在页面上,请求这个接口的方式是这样。

var res=membershipService.getVertifyCode(check_code_token,check_code,m_name,"forgot");

其中的res就是返回的数组,这样写在安卓端是没有半点问题的,完全可行,但是在苹果端就是灾难的开始。其实我分析一波觉得这样写也没什么毛病,但是return后的值就直接为空了,所以前台res获取的也是为空的,就导致了后续的一系列错误,如果有大佬路过存在新的见解也可以留下发言。

正确的解决方法是如下。

1.那就是不在dataService.js中定义了,把mui的ajax请求方法完全重写一遍,完全无视那个文件,直接在页面上按照如下写法。

var vertify_code_url;
vertify_code_url=ROOT_URL + '/m/mail/' + check_code_token + '/' + check_code + '/' + m_name + '/'+'forgot';
mui.ajax(vertify_code_url,{
    data:{
    },
    dataType:'json',//服务器返回json格式数据
    type:'get',//HTTP请求类型
    success:function(data){
        console.log(JSON.stringify(data));
        这里获取到了data,就可以通过它来获取字段和写判断了
    }
});

2.实际测试问题解决,不过对于vue和mui混合开发的app而言,里面有些还是要注意的,比如vue用的this.XXX赋值,要把this改为vue的创建方法名称,比如如下代码。

var vm=new Vue({
    //vue的方法
})

注意到vm没有,这就是名称,如果是mui的方法内要对vue的字段赋值,就要把this替换成vm,写成vm.XXX模式,其实这个问题已经在我上一篇关于mui的文章折腾过,只是没有注明。

文章就要这里,心累。
timg.jpg

您的大名:
万水千山总是情,给个打赏行不行。 打赏
本文来自投稿,不代表本站立场,如若转载,请注明出处:https://www.ruletree.club/archives/1969/
mui与vue混合开发下,页面参数传递
« 上一篇 04-30
海棠:旅行杂记
下一篇 » 05-16
广告

发表评论

成为第一个评论的人

作者信息

热门文章

标签TAG

热评文章