feat: 增加配置:doNotUseQueryString

默认情况下,POST请求,登陆态除了带在请求body中,也会带在queryString上,如果配置了这个为true,则登陆态不带在queryString中
This commit is contained in:
TENCENT\ivinwu
2019-04-10 19:18:51 +08:00
parent 8cab011162
commit 9f5034bb75
7 changed files with 26 additions and 18 deletions

View File

@@ -1,5 +1,5 @@
<p align="center"><img src="./image/logo.png" alt="weRequest" height="160"/></p>
<h2 align="center">v1.2.7</h2>
<h2 align="center">v1.2.8</h2>
<p align="center"><b>解决繁琐的小程序会话管理,一款自带登录态管理的网络请求组件。</b></p>
@@ -166,6 +166,7 @@ weRequest.request({
|globalData|Object/Function|否||所有请求都会自动带上这里的参数|
|sessionExpireTime|Int|否|null|为用户登陆态设置本地缓存时间单位为ms一旦过期直接废弃缓存中的登陆态|
|sessionExpireKey|String|否|sessionExpireKey|如果为用户登陆态设置了本地缓存时间则过期时间将以此值为key存储在Storage中|
|doNotUseQueryString|Boolean|否|false|默认情况下POST请求登陆态除了带在请求body中也会带在queryString上如果配置了这个为true则登陆态不带在queryString中|
##### codeToSession参数说明

View File

@@ -16,6 +16,7 @@ export interface IInitOption {
successData?: (res: string | IAnyObject | ArrayBuffer) => string | IAnyObject | ArrayBuffer;
errorTitle?: string | ((res: string | IAnyObject | ArrayBuffer) => string);
errorContent?: string | ((res: string | IAnyObject | ArrayBuffer) => string);
doNotUseQueryString?: boolean;
}
export interface ICodeToSessionOptions {
url: string;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,6 @@
{
"name": "we-request",
"version": "1.2.7",
"version": "1.2.8",
"description": "本工具通过拓展小程序的wx.request让开发者通过简单的配置实现自动管理登录态等功能",
"keywords": [
"登录态",

View File

@@ -40,6 +40,8 @@ export interface IInitOption {
errorTitle?: string | ((res: string | IAnyObject | ArrayBuffer) => string);
/* 接口逻辑失败时,错误弹窗的内容 */
errorContent?: string | ((res: string | IAnyObject | ArrayBuffer) => string);
/* 当请求为非GET时不将登陆态等参数放在queryString上默认都放queryString */
doNotUseQueryString?: boolean;
}
export interface ICodeToSessionOptions{

View File

@@ -66,7 +66,7 @@ function initializeRequestObj(obj: IRequestOption) {
obj.dataType = obj.dataType || 'json';
// 如果请求不是GET则在URL中自动加上登录态和全局参数
if (obj.method !== "GET") {
if (!config.doNotUseQueryString && obj.method !== "GET") {
if (status.session) {
obj.url = url.setParams(obj.url, {[config.sessionName]: status.session});
}
@@ -92,12 +92,14 @@ function initializeUploadFileObj(obj: IUploadFileOption) {
const gd = getGlobalData();
obj.formData = {...gd, ...obj.formData};
if (!config.doNotUseQueryString) {
// 将登陆态也带在url上
if (status.session) {
obj.url = url.setParams(obj.url, {[config.sessionName]: status.session});
}
// 全局参数同时放在url上
obj.url = url.setParams(obj.url, gd);
}
durationReporter.start(obj);