f***@126.com
f***@126.com
  • 发布:2017-03-31 17:03
  • 更新:2017-04-01 13:07
  • 阅读:1295

ajax获取json,pc上正常使用,真机调试就undefined了

分类:HTML5+
function getLawsList() {  
                mui.get('./data/laws.json',function(data) {  
                    var lawsDataList = data.laws;  
                    console.log(data.laws);  
                    for (var i = 0; i<lawsDataList.length; i++) {  
                        var lawData = lawsDataList[i];  
                        var item = document.createElement("li");  
                        item.className = "mui-table-view-cell";  
                        item.innerHTML = lawData.title;  
                        item.data = lawData.content;   
                        var detailPage = null;  
                        item.addEventListener('tap',function(){  
                            mui.alert(this.data,this.innerHTML,'确认');  
                            var content = this.getAttribute(content);  
                            if(detailPage){  
                                detailPage = plus.webview.getWebviewById('lawDetail.html');  
                            }  
                            mui.fire(detailPage,'newContent',{  
                                content:content  
                            });  
                            mui.openWindow({  
                                id:'lawDetail.html'  
                            })  
                        })  
                        lawList.appendChild(item);  
                    }  
                });  
            }  
电脑上可以正常显示,但是手机上虽然拿到了ajax里的data,但是data.laws就报undefined了  
求大神救助
2017-03-31 17:03 负责人:无 分享
已邀请:
n***@gmail.com

n***@gmail.com

你这个json文件是在本地项目工程中还是放在服务端的呢?

  • f***@126.com (作者)

    本地的,找到解决方法了。似乎pc上运行的时候,json拿过来是一个对象,但是在手机上运行的时候,就变成字符串了,我多做了一步json.parse在手机上就好用了不过还是不明白为什么会有这样的区别

    2017-04-01 09:12

n***@gmail.com

n***@gmail.com

用get方法获取json文件的时候建议加个dataType参数指定文件格式为json 这样xhr的ResponseHeader中"Content-Type"就是json,就会按照object格式解析,不然默认的是string格式 所以需要你手动解析,或者你就是用getJSON 方法也可以

mui.get('http://server-name/list.php',{category:'news'},function(data){  
        //获得服务器响应  
        ...  
    },'json'  
);

详细可以参考这里

  • f***@126.com (作者)

    原来如此明白了感谢大神(膜拜

    2017-04-01 14:09

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