12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- // const basePath = 'http://47.110.94.59/gateway'
- // const basePath = 'https://dev.cloud-dahua.com'
- import utils from './utils.js'
- import config from '../config.js'
- const instance = axios.create({
- timeout: 10000
- })
- const urlHandle = function(method, url, param) {
- let queryStr = ''
- let data = param || {}
- if (method !== 'get') {
- return url
- }
- Reflect.ownKeys(data).forEach((one, index) => {
- let preStr = ''
- if (index) {
- preStr = '&'
- }
- queryStr = `${queryStr}${preStr}${one}=${data[one]}`
- })
- return queryStr ? `${url}?${queryStr}` : url
- }
- /**
- * @method resetAjax ()ajax方法的封装
- * @param param.method 请求的方法
- * @param param.url 请求的地址
- * @param param.data 请求的数据
- * @param param.onSuccess 成功时需要的回调
- * @param param.onError 错误时需要的回调
- * @param param.sTipStr 成功时的提示
- * @param param.eTipStr 错误时的提示
- * @param param.isSNoTip true说明成功的不需要弹提示,默认为false
- * @param param.isENoTip true说明不需要错误的提示信息,默认为false
- * @param param.isNoLock true代表不需要锁屏
- * @param param.isNoToken true代表不需要传token验证
- * @param param.automaticQuery true 代表get请求时自动拼接query
- * @param param.rootPath true 代表请求时不需要拼接本地IP和起的端口号,false代表需要,默认为false
- */
- export default (param) => {
- let path = param.rootPath ? param.url : config.base_url + param.url
- let url = param.automaticQuery ? urlHandle(param.method, path, param.data) : path
- instance.defaults.headers.common['Accept-Language'] = 'zh-CN'
- instance.defaults.headers.common['timeOffset'] = new Date().getTimezoneOffset() * 60 * 1000
- //防重防攻击 时间戳
- instance.defaults.headers.common['timestamp'] = +new Date()
- //防重防攻击 随机数
- instance.defaults.headers.common['nonce'] = `web-${utils.guid()}-${+new Date()}`
- let headers = param.headers || {}
- if ((sessionStorage.token || localStorage.token) && !param.isNoToken) {
- let token = sessionStorage.token ? sessionStorage.token : localStorage.token
- if(param.url.includes('access_token=')) {
- headers.Authorization = 'Basic ' + 'YnJvd3Nlcjpicm93c2Vy'
- } else {
- headers.Authorization = 'Bearer ' + token
- }
- }
- instance({
- method: param.method,
- url: url,
- data: param.data || {},
- params: param.data && param.data.params ? param.data.params : {},
- headers: headers,
- timeout: param.timeout || 10000
- }).then(function (res) {
- res = utils.decodeObj(res)
- if (res.data.success) {
- param.onSuccess && param.onSuccess(res)
- } else {
- console.log('ajaxError================')
- param.onError && param.onError(res)
- }
- }).catch(function (e) {
- param.onError && param.onError(e)
- console.log('ajaxError================' + url + e)
- })
- }
|