zoukankan      html  css  js  c++  java
  • 微信公众号ios10.1 版本白屏问题

    真机调试IOS 10.1.x的版本不支持fetch 所以一直loading显示白屏。
    其他设备都没问题。 所以用主要属性window.fetch用来判断是否支持fetch 属性
    import {
        baseUrl
    } from './env'
    
    export default async(url = '', data = {}, type = 'GET', method = 'fetch') => {
        type = type.toUpperCase();
        url = baseUrl + url;
    
        if (type == 'GET') {
            let dataStr = ''; //数据拼接字符串
            Object.keys(data).forEach(key => {
                dataStr += key + '=' + data[key] + '&';
            })
    
            if (dataStr !== '') {
                dataStr = dataStr.substr(0, dataStr.lastIndexOf('&'));
                url = url + '?' + dataStr;
            }
        }
    
        if (window.fetch && method == 'fetch') {
            let requestConfig = {
                credentials: 'include',
                method: type,
                headers: {
                    'Accept': 'application/json',
                    'Content-Type': 'application/json',
            'Authorization': localStorage.getItem('token'),
                },
                mode: "cors",
                // cache: "force-cache"
            }
    
            if (type == 'POST') {
                Object.defineProperty(requestConfig, 'body', {
                    value: JSON.stringify(data)
                })
            }
    
            try {
                const response = await fetch(url, requestConfig);
                const responseJson = await response.json();
                return responseJson
            } catch (error) {
                throw new Error(error)
            }
        } else {
            return new Promise((resolve, reject) => {
                let requestObj;
                if (window.XMLHttpRequest) {
                    requestObj = new XMLHttpRequest();
                } else {
                    requestObj = new ActiveXObject;
                }
    
                let sendData = '';
                if (type == 'POST') {
                    sendData = JSON.stringify(data);
                }
    
                requestObj.open(type, url, true);
                requestObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                requestObj.setRequestHeader("Accept","application/json");
          requestObj.setRequestHeader("Content-Type","application/json");
          requestObj.setRequestHeader("Authorization",localStorage.getItem('token'));
                requestObj.send(sendData);
    
                requestObj.onreadystatechange = () => {
                    if (requestObj.readyState == 4) {
                        if (requestObj.status == 200) {
                            let obj = requestObj.response
                            if (typeof obj !== 'object') {
                                obj = JSON.parse(obj);
                            }
                            resolve(obj)
                        } else {
                            reject(requestObj)
                        }
                    }
                }
            })
        }
    }
  • 相关阅读:
    【无中生有】---4----数据库设计-3
    【无中生有】---2---数据库设计-1
    redis3.0的demo实验
    redis3.0的demo实验
    那些在学习iOS开发前就应该知道的事(part 1)
    模板文件中的插件嵌入点列表
    图像处理框架 Core Image 介绍
    sharepoint services
    DiscuzX2.5数据库字典 值得学习
    Sublime Text 使用技巧
  • 原文地址:https://www.cnblogs.com/wupeng88/p/11818670.html
Copyright © 2011-2022 走看看