http 模板

笔者在写链接的时候,总结出来的一个模板,这个是js的,不过如果你想改为tsd的话,直接吧方法复制获取就好

我搞不好这个格式,去我的微博吧,找到更容易赋值的http模板

var httpUtils = cc.Class({
extends: cc.Component,

properties: {
    // foo: {
    //    default: null,      // The default value will be used only when the component attaching
    //                           to a node for the first time
    //    url: cc.Texture2D,  // optional, default is typeof default
    //    serializable: true, // optional, default is true
    //    visible: true,      // optional, default is true
    //    displayName: 'Foo', // optional
    //    readonly: false,    // optional, default is false
    // },
    // ...
},

statics: {
    instance: null
},

// use this for initialization
onLoad: function () {
},
httpGetsGameType: function (url, callback) {
    var xhr = cc.loader.getXMLHttpRequest();//new XMLHttpRequest();//
    xhr.onreadystatechange = function () {
        if (xhr.readyState === 4 && (xhr.status >= 200 && xhr.status < 300)) {
            var respone = xhr.responseText;
            callback(respone);
        }else{
            callback(-1);
        }
    };
    xhr.open("GET", url, true);
    if (cc.sys.isNative) {
        xhr.setRequestHeader("Accept-Encoding", "gzip,deflate");
    }

    // note: In Internet Explorer, the timeout property may be set only after calling the open()
    // method and before calling the send() method.
    xhr.timeout = 5000;// 5 seconds for timeout
    xhr.send();
},

httpGets: function (url, callback) {
    var xhr = cc.loader.getXMLHttpRequest();//new XMLHttpRequest();//
    xhr.onreadystatechange = function () {
        if (xhr.readyState === 4 && (xhr.status >= 200 && xhr.status < 300)) {
            var respone = xhr.responseText;
            callback(respone);
        }else{

        }
    };
    xhr.open("GET", url, true);
    if (cc.sys.isNative) {
        xhr.setRequestHeader("Accept-Encoding", "gzip,deflate");
    }

    // note: In Internet Explorer, the timeout property may be set only after calling the open()
    // method and before calling the send() method.
    xhr.timeout = 5000;// 5 seconds for timeout
    xhr.send();
},

httpPost: function (url, params, callback) {
    var xhr = cc.loader.getXMLHttpRequest();
    xhr.onreadystatechange = function () {
        // cc.log('xhr.readyState='+xhr.readyState+'  xhr.status='+xhr.status);
        if (xhr.readyState === 4 && (xhr.status >= 200 && xhr.status < 300)) {
            var respone = xhr.responseText;
            callback(respone);
        }else{
            //   callback(-1);
        }
    };
    xhr.open("POST", url, true);
    if (cc.sys.isNative) {
        xhr.setRequestHeader("Accept-Encoding", "gzip,deflate");
    }
    xhr.setRequestHeader('Content-Type', 'application/json;charset=utf-8');

    // note: In Internet Explorer, the timeout property may be set only after calling the open()
    // method and before calling the send() method.
    xhr.timeout = 1000;// 5 seconds for timeout

    xhr.send(params);
},
httpPut: function (url, params, callback) {
    var xhr = cc.loader.getXMLHttpRequest();
    xhr.onreadystatechange = function () {
        // cc.log('xhr.readyState='+xhr.readyState+'  xhr.status='+xhr.status);
        if (xhr.readyState === 4 && (xhr.status >= 200 && xhr.status < 300)) {
            var respone = xhr.responseText;
            callback(respone);
        }else{
            //   callback(-1);
        }
    };
    xhr.open("PUT", url, true);
    if (cc.sys.isNative) {
        xhr.setRequestHeader("Accept-Encoding", "gzip,deflate");
    }
    xhr.setRequestHeader('Content-Type', 'application/json;charset=utf-8');

    // note: In Internet Explorer, the timeout property may be set only after calling the open()
    // method and before calling the send() method.
    xhr.timeout = 1000;// 5 seconds for timeout

    xhr.send(params);
},
httpheaderPost: function (url, params, callback ,headerName, headerValue) {
    var xhr = cc.loader.getXMLHttpRequest();
    xhr.onreadystatechange = function () {
        // cc.log('xhr.readyState='+xhr.readyState+'  xhr.status='+xhr.status);
        if (xhr.readyState === 4 && (xhr.status >= 200 && xhr.status < 300)) {
            var respone = xhr.responseText;
            callback(respone);
        }else{
              callback(-1);
        }
    };
    xhr.open("POST", url, true);
    if (havaheader==1) {
        xhr.setRequestHeader(headerName, headerValue);
        xhr.setRequestHeader('Content-Type', 'application/json;charset=utf-8');
    }
     // xhr.send(JSON.stringify(HTTP.data));
    // note: In Internet Explorer, the timeout property may be set only after calling the open()
    // method and before calling the send() method.
    xhr.timeout = 5000;// 5 seconds for timeout

    xhr.send(params);
},
httpCeshi:function(){

console.log("玩家单利模式调取完毕");

}

});

httpUtils.getInstance = function () {
if (httpUtils.instance == null) {
httpUtils.instance = new httpUtils();
}
return httpUtils.instance;
};

//js 单利的使用方法:

1赞

帮你补充两句
xhr.ontimeout = function() {};
xhr.onerror = function(e) {};

1赞

哈哈666666666

有些尴尬啊