IOS 出现不支持的 URL

第一:

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&param={}'// + 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) ,所以在链接后面又是双引号又是大括号的。

切记、切记!

猜你喜欢

转载自blog.csdn.net/huanghuipost/article/details/102521074