Laya 使用get或post请求服务器

export default class Request {
    private _http;
    private _server = "https://test.codeplanet.cc";//
    static _instance = null;
  //把自己设置为单例模式,不销毁则一直存在
    static getInstance(): Request {
        if (!Request._instance) {
            Request._instance = new Request;
        }
        return Request._instance;
    }
    set server(str: string) {
        this._server = str;
    }
    /**
     * 
     * @param url {string} url地址
     * @param data {object} 参数
     * 
     */
    post(params) {
        this._http = new Laya.HttpRequest();
        let requst = new Promise((resolve, reject) => {
            this._http.once(Laya.Event.COMPLETE, this, e => { resolve(this.onCompleteHanlder(e)) })
        })
        let data = this.parseParam(params.data) || {};
        let url = this.getServerFullUrl(params.url)
        this._http.send(url, data, 'post', 'text');
        return requst;
    }
    get(params) {
        this._http = new Laya.HttpRequest();
        let requst = new Promise((resolve, reject) => {
            this._http.once(Laya.Event.COMPLETE, this, e => { resolve(this.onCompleteHanlder(e)) })
        })
        let data = this.parseParam(params.data) || {};
        this._http.send(params.url, data, 'get', 'text');
        return requst;
    }
    private onCompleteHanlder(e: any) {
        return JSON.parse(e);
    }
    private parseParam(data) {
        var body = '';
        for (var i in data) {
            body += i + "=" + data[i] + "&"
        }
        return body.slice(0, -1);
    }
    private getServerRootUrl() {
        return this._server ? this._server : window.location.origin;
    }
    private getServerFullUrl(partUrl) {
        let root = this.getServerRootUrl();
        if (root) {
            console.log('getServerFullUrl ' + root + partUrl);
            return root + partUrl;
        }
        return partUrl;
    }
}
//调用
import Request from "../tools/Request";//引用request文件
private _request: Request = Request.getInstance();

this._request.post({ "/home/index", {type:1} }).then(res => {
    
})
 

猜你喜欢

转载自www.cnblogs.com/cubesugarnuo/p/12362951.html