第一:
URL中含有转义字符例如 双引号 "" 、大括号{}等
解决办法:对url编码
js内置函数:encodeURI()
或者encodeURIComponent()
第二
IOS9以后添加了新特性,不再支持HTTP协议(不安全)。改用HTTPS
1、在Android中使用HTTP协议
//登录
login:function(count,password,callback) {
var param = {
"username":count,
"password":password
};
var url = 'http://' + ip + ':' + port + '/api?action=login¶m={}'// + JSON.stringify(param);
//var request = new XMLHttpRequest();
var request;
if(window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
request=new XMLHttpRequest();
console.log("使用XMLHttpRequest");
}else{// code for IE6, IE5
request=new ActiveXObject("Microsoft.XMLHTTP");
console.log("使用ActiveXObject");
}
console.log("登录:" + url);
console.log("open");
request.open("GET", url, true);
console.log("send");
request.send();
request.onreadystatechange = function () {
console.log("request callback");
if (request.readyState == 4 && (request.status >= 200 && request.status < 400)) {
var response = request.responseText;
var rsp = JSON.parse(response).data;
var ret = JSON.parse(response).ret;
if(0 == ret){
console.log("登录--失败");
console.log(rsp);
console.log(ret);
callback(false,rsp);
}else{
callback(true, rsp);
}
}
};
},
上述代码就是犯了第一个问题,使用的是JSON.stringify(param) ,所以在链接后面又是双引号又是大括号的。
切记、切记!