@fim3/request
v1.0.1
Published
super request for vue
Downloads
2
Keywords
Readme
安装
npm install @fc/request -S
基本使用
import Vue from 'Vue'
import {
request,
Cache
} from '@fc/request'
// 无参数初始化
Vue.protoType.$http = SuperRequest
// OR
// 携带参数初始化
Vue.protoType.$http = SuperRequest.create({
baseUrl: '/g/fim3/xxx',
debug: true,
...
})
API
| 参数 | 类型 | 默认值 | 说明 | | ----------- | ------- | ------ | ---------------- | | cache | boolean | false | 是否开启缓存 | | forceUpdate | boolean | false | 是否强制更新缓存 | | cancelTolen | Promise | / | 取消请求 | | dictionary | string | dictionary | 是否启动字典缓存 | | camelCase | boolean | true | 是否启动驼峰处理 | | encodeParams | boolean | false | 是否开启请求参数转义 | | targetEncode | Array | / | 是否指定特定的值进行转义 |
缓存
// 主动使用缓存
$http.get('/users', { cache: true });
// 自定义缓存
import { Cache } from 'super-request';
const cache1 = new Cache()
$http.get('/users', { cache: cache1 });
// 强制更新缓存
$http.get('/users', { cache: cache1, forceUpdate: true });
// post字典也可以进行缓存
$http.post('/name',{
template_id: 1,
dictionary: 9902
},{
cache: true
})
.then(res=> {
console.log('res',res);
})
// 是否启用驼峰处理
$http.post('/name',{
template_id: 1,
dictionary: 9902
},{
camelCase: false
})
.then(res=> {
// 返回的数据会保留a_b的格式
console.log('res',res);
})
// 开启转义
$http.post('/name',{
template_id: 1,
dictionary: 9902
},{
encodeParams: true
})
.then(res=> {
// script和sql注入会被转义
console.log('res',res);
})
// 开启转义后会有sql注入和script注入自动转义
// sql注入正则
private regSql = /select|update|delete|truncate|join|union|exec|insert|drop|count|'|"|=|;|>|</i
// 非法<script></script>标签
private regScript = /<script[^>]*>[\s\S]*?<\/[^>]*script>/gi
//e.g以下输入开启 encodeParams: true后会被自动转义
<script><script>
select * from
insert
// 关键词命中后会自动encode
// 开启特定值转义
$http.post('/name',{
dictionary: "!@#$%^&*",
val: {
a: '<script>',
b: 'query'
}
},{
encodeParams: true,
targetEncode: ['dictionary', 'a']
})
.then(res=> {
// dictionary和 a 会被转义
console.log('res',res);
})