"request": function(o, isWaiting) {
var xhr = new plus.net.XMLHttpRequest();
//var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
switch (xhr.readyState) {
case 0:
case 1:
if (isWaiting) {
w.waiting = plus.nativeUI.showWaiting();
}
break;
case 4:
if (xhr.status == 200) {
closeWaiting();
console.log("readyState 4 status : " + xhr.status);
o.success(xhr.responseText);
} else if (xhr.status == 0) {
console.log("cross domain. ignore it");
console.log(xhr.responseText);
} else {
console.log("readyState 4 status : " + xhr.status);
mui.alert("错误");
}
break;
default:
break;
}
}
xhr.open(o.type, this.site);
xhr.setRequestHeader('osname', plus.os.name);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xhr.setRequestHeader("Accept", "application/json, text/javascript, */*; q=0.01");
xhr.send(param(o.data));
}
wjl.request({
"type": "post",
"data": {
"Model": "xxx",
"Action": "xx"
},
"success": function(resp) {
console.log("here -------:" + resp);
console.log("here -------:" + JSON.parse(resp));
}
});
第二句console.log,有时报错,有时正常运行
4 个回复
粥冰
这个应该不会,网络不好,应该是超时,也不应该是一半的数据,把代码先贴出来把。。
Danny - QQ125904483
是不是返回有特殊字符啊啊
samwang (作者)
wjl.request({
"type": "post",
"data": {
"Model": "xxx",
"Action": "xx"
},
"success": function(resp) {
console.log("here -------:" + resp);
console.log("here -------:" + JSON.parse(resp));
}
});
第二句console.log,有时报错,有时正常运行
DCloud_App_Array
是Android还是iOS平台的问题?
请把完整页面代码贴出来(包括请求的服务器地址)。
2015-06-23 18:34
samwang (作者)
两个平台都有这个问题。后来打请求数据拆分小了,加了个timeout,这个问题也就没了。
2015-07-04 18:57
大树哥 - 有没有iOS的兼职
两个方向查找问题
1,服务端是否有完整输出内容,可以通过服务器端打日志或者通过客户端抓包的方式,拿到通信数据,确保服务器拿到提完整数据
2,如果第一步确认ok,那就看第二步,如果JSON解析失败,但第一行的代码输出的是完整的数据,则可以确认是JSON不兼容或者格式错误,可以查找JSON内容的问题