WebApp【公共组件库】@前端(For Git Submodule)
Tevin
2021-08-19 973c786fa51b657fa134b01c311f72386386c251
bases/Fetcher.js
@@ -33,7 +33,23 @@
     * 请求配置
     * @private
     */
    _defaultConfig = {
    _defaultConfig = (() => {
        // 跨域模式,一般为 App 内嵌页面
        if (project.host.cors) {
            return {
                url: '',
                header: {
                    'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
                },
                mode: 'cors',
                credentials: 'include',
                dataType: 'json',
                timeout: 30 * 1000,
            };
        }
        // 正常模式,小程序、普通H5
        else {
            return {
        url: '',
        header: {
            'X-Requested-With': 'XMLHttpRequest',
@@ -44,6 +60,8 @@
        dataType: 'json',
        timeout: 30 * 1000,
    };
        }
    })();
    /**
     * 拼写 URL 地址
@@ -170,16 +188,16 @@
    }
    _saveCookies(cookies) {
        const localCookies = JSON.parse(wx.getStorageSync('cookies') || '{}');
        const localCookies = JSON.parse(Taro.getStorageSync('cookies') || '{}');
        cookies.forEach(cookie => {
            const mc = cookie.match(/([a-zA-Z0-9_\-]+)=(.*?);/);
            localCookies[mc[1]] = mc[2];
        });
        wx.setStorageSync('cookies', JSON.stringify(localCookies));
        Taro.setStorageSync('cookies', JSON.stringify(localCookies));
    }
    _getCookies() {
        const localCookies = JSON.parse(wx.getStorageSync('cookies') || '{}');
        const localCookies = JSON.parse(Taro.getStorageSync('cookies') || '{}');
        const cookiesArr = [];
        Object.keys(localCookies).forEach(key => {
            cookiesArr.push(key + '=' + localCookies[key]);
@@ -585,31 +603,18 @@
     * @type {String}
     */
    static host = (() => {
        // 网页
        // 网页模式
        if (process.env.TARO_ENV === 'h5') {
            // 开发
            if (Fetcher.inDevMod) {
                // 网址访问
                if (window.location.protocol.indexOf('http') >= 0) {
                    return window.location.protocol + '//' + window.location.host;
                }
                // 文件访问
                else {
                    return project.host.hosts[project.host.devType];
                }
            }
            // 生产
            else {
                // 如果网址参数有指定服务器
                const sever = Tools.getUrlParam('sever');
                if (sever) {
            const server = Tools.getUrlParam('server');
            if (server) {
                    // 如果是完整网址,直接使用地址
                    if (sever.indexOf('http') >= 0) {
                        return sever;
                if (server.indexOf('http') >= 0) {
                    return server;
                    }
                    // 如果有匹配服务器,使用指定的服务器地址
                    if (typeof project.host.hosts[sever] !== 'undefined') {
                        return project.host.hosts[sever];
                if (typeof project.host.hosts[server] !== 'undefined') {
                    return project.host.hosts[server];
                    }
                    // 否则使用本地
                    else {
@@ -622,11 +627,17 @@
                }
                // 既不指定server也不是域名访问,使用设置的服务器地址
                else {
                // 开发
                if (Fetcher.inDevMod) {
                    return project.host.hosts[project.host.devType];
                }
                // 生产
                else {
                    return project.host.hosts[project.host.serverType];
                }
            }
        }
        // 小程序
        // 小程序模式
        else if (process.env.TARO_ENV === 'weapp') {
            // 开发
            if (Fetcher.inDevMod) {