一共使用了三种方式来调用:
第一种:
mui.get(urlStr, {}, function(data){
alert(data);
fillAttribute(data);
}, 'json');
返回的data是null。
第二种:
if (!xhr) {
alert("new 一个新的");
xhr = new plus.net.XMLHttpRequest();
alert("new done");
}
xhr.onreadystatechange=xhrStatechange;
xhr.open( "GET", config.webServer + "/user/" + userId );
xhr.send();
function xhrStatechange(){
switch( xhr.readyState ) {
case 4:
if ( xhr.status == 200 ) {
alert(xhr.responseText);
var data = xhr.responseText;
fillAttribute(data);
} else {
console.log( "xhr请求失败:"+xhr.readyState );
}
break;
default :
break;
}
}
这种调用方式结果非常奇怪,第一次打开这个WebView时,可以正常调用;之后再打开这个WebView就一直有问题,根据Alert来判断,是new plus.net.XMLHttpRequest失败了。
第三种:使用jQuery
$.get(urlStr, {}, function(data){
alert(JSON.stringify(data));
fillAttribute(data);
}, "json");
非常稳定,每次都可以正常执行。
大家有遇到过类似的情况吗?
2 个回复
wangda_cn (作者)
我比较奇怪的是jQuery正常调用,为啥 mui.get 和 plus.net.XMLHttpRequest 都不能正常工作呢?
在手机上调试非常不方便,仅有的一个酷派手机系统是android 4.2的,没办法使用chrome来远程调,而使用了plus的JS代码没法在本地的浏览器上面调试。
DCloud_UNI_FXY
你的手机网络是用的wifi还是3g or 4g,你的url是外网的?如果是的话,告诉我一下,我测试测试,
wangda_cn (作者)
我用的Wifi,URL是内网的一个IP地址。我使用的是大神F1。
2014-12-31 14:08
DCloud_UNI_FXY
hello-mui中的ajax演示demo,在你的手机上测试正常吗
2015-01-04 12:17