request函数

request函数

export default function request(url, params, options,orgCodeFlag) {
    orgCodeFlag = orgCodeFlag==null||orgCodeFlag=='undefined'?true:orgCodeFlag
    const opts = setOptions(params, options, orgCodeFlag);
        return fetch(url, opts)
                .then(checkStatus)
                .then(parseJSON)
                .then(data => ({
                      ...data        
                 }))
                 .catch(err => ({err}));
}

请求头、请求体参数设置

const setOptions = (params, options, orgCodeFlag = true) => {
    var sessionId = sessionStorage.getItem("commons-session");    
    if (util.isEmpty(sessionId) || sessionId == "null" || sessionId == "undefined"){
    	sessionStorage.setItem("commons-session", guid());//guid()将返回一串随机的sessionId
    	sessionId = sessionStorage.getItem("commons-session");    
    }    
    localStorage.setItem("commons-session", sessionId);    
    try {
    	//获取登录后的用户信息,每次请求都将携带当前登录用户的orgCode
    	let _info = JSON.parse(sessionStorage.getItem('commons-user'));        
    	if (orgCodeFlag && _info && _info.userInfo)) {            
    		params = {...params,orgCode: _info.userInfo.orgCode}        
    	}    
    } catch (error) {}    
    var opts = {        
    	method: "POST",        
    	headers: {            
    		'Accept': 'application/json',            
    		'Content-Type': 'application/json',            
    		'commons-session': sessionId, //可以设置一些请求头信息
        },        
    	body: JSON.stringify(params) //qs.stringify()
    };    /*  if (options) {         opts.body = JSON.stringify(params)     } */    
    return opts;}

响应判断

function checkStatus(response) {
	if (response.status >= 200 && response.status < 300) {
	    return response;
	}
   const error = new Error(response.statusText);
   error.response = response;    
   throw error;
}

响应结果转换

function parseJSON(response) {
    return response.json();
}

在独立的services.js中使用
1、引入request.js文件
2、接口请求示例

export async function getApi(params) {  
	return await request("/api/xxxxx", params);
};

页面中使用示例
1、引入services.js文件,可以用 * 的方式把所有的都引入,也可以用结构的方式引入所需要的,具体视情况而定

import * as services  from './services.js'

2、使用

services.getApi({param1:'123',param2:'abc'}).then( res => {
	if(res.code==0){
		//处理res.data的执行语句
		//...
	}else{
		//其他情况的处理...
	}
}).catch( err => {
	//错误的捕获....
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值