文件 层级 config.js api(文件夹) > config.js urls.js api(文件夹) > urls.js http.js api(文件夹) > http.js http-ie.js api(文件夹) > http-ie.js mixin.js tools(文件夹) > mixin.js des.js tools(文件夹) > des.js main.js main.js
export const imgBaseURL = 'http://114.215.186.169:8195/'
export const baseURL = 'http://api.suotuobao.com/api/'
export const timeout = 30000
export const applicationKey = 'bkkj'
export const getApplication = 'application/'
export const getVerificationCode = 'Sms/Sms/'
export const passwordLogin = 'Login/UserLogin'
export const telLogin = 'Login/SmsUserLogin'
export const resetPassword = 'Login/FindPwd'
export const getUserInfoByTel = 'User/UserInfoTel/'
export const getUserInfoByOpenId = 'User/UserInfoOpenid/'
import Axios from 'axios'
import VueRouter from 'vue-router'
import { baseURL, timeout, applicationKey } from './config'
import { getIE, postIE } from './http-ie'
import { isLTIE } from '@/tools/mixin'
import { encryptDes } from '@/tools/des'
import Cookies from 'js-cookie'
import { Base64 } from 'js-base64'
Axios. defaults. timeout = timeout
Axios. defaults. baseURL = baseURL
Axios. interceptors. request. use (
config => {
let authorization = { }
if ( config. url. indexOf ( 'application/' ) === 0 ) {
console. log ( ' ' )
} else if (
config. url. indexOf ( 'Sms/Sms/' ) === 0 ||
config. url. indexOf ( 'Login/UserLogin' ) === 0 ||
config. url. indexOf ( 'Login/SmsUserLogin' ) === 0 ||
config. url. indexOf ( 'Login/FindPwd' ) === 0
) {
let application = JSON . parse ( Cookies. get ( 'application' ) )
authorization = {
Authorization:
'Basic ' +
Base64. encode (
application. name +
':' +
encryptDes (
config. baseURL + config. url,
applicationKey + application. key,
applicationKey + application. iv
)
)
}
} else {
if ( ! Cookies. get ( 'access_token' ) ) {
VueRouter. replace ( '/login' )
}
authorization = {
Authorization: 'Bearer ' + Cookies. get ( 'access_token' )
}
}
config. headers = Object. assign (
{
'Content-Type' : 'application/json'
} ,
authorization
)
return config
} ,
err => {
return Promise. reject ( err)
}
)
Axios. interceptors. response. use (
response => {
return response
} ,
error => {
return Promise. reject ( error)
}
)
export function get ( url, params = { } ) {
if ( isLTIE ( 10 ) ) {
return getIE ( baseURL + url, params)
} else {
return new Promise ( ( resolve, reject) => {
Axios. get ( url, {
params: params
} )
. then ( res => {
resolve ( res)
} )
. catch ( err => {
reject ( err)
} )
} )
}
}
export function post ( url, data = { } , config = { } ) {
if ( isLTIE ( 10 ) ) {
return postIE ( baseURL + url, data)
} else {
return new Promise ( ( resolve, reject) => {
Axios. post ( url, data, config)
. then ( res => {
resolve ( res)
} )
. catch ( err => {
reject ( err)
} )
} )
}
}
export function getIE ( url, params) {
return new Promise ( ( resolve, reject) => {
if ( window. XDomainRequest) {
var str = ''
if ( Object. prototype. toString. call ( params) === '[object Object]' ) {
for ( var key in params) {
str += '&' + key + params. key
}
str = '?' + str. substr ( 1 )
}
url += str
var xdr = new XDomainRequest ( )
xdr. open ( 'GET' , url)
xdr. onprogress = function ( ) { }
xdr. ontimeout = function ( ) {
alert ( '请求超时' )
reject ( new Error ( ) )
}
xdr. onerror = function ( ) {
alert ( '请求出错' )
reject ( new Error ( ) )
}
xdr. onload = function ( ) {
resolve ( { data: JSON . parse ( xdr. responseText) } )
}
setTimeout ( function ( ) {
xdr. send ( )
} , 0 )
} else {
alert ( '该浏览器不支持XDomainRequest请求,请换用其它浏览器' )
reject ( new Error ( ) )
}
} )
}
export function postIE ( url, params) {
return new Promise ( ( resolve, reject) => {
if ( window. XDomainRequest) {
var str = ''
if ( Object. prototype. toString. call ( params) === '[object Object]' ) {
for ( var key in params) {
str += '&' + key + params. key
}
str = '?' + str. substr ( 1 )
}
var xdr = new XDomainRequest ( )
xdr. open ( 'POST' , url)
xdr. onprogress = function ( ) { }
xdr. ontimeout = function ( ) {
alert ( '请求超时' )
reject ( new Error ( ) )
}
xdr. onerror = function ( ) {
alert ( '请求出错' )
reject ( new Error ( ) )
}
xdr. onload = function ( ) {
resolve ( { data: JSON . parse ( xdr. responseText) } )
}
setTimeout ( function ( ) {
xdr. send ( str)
} , 0 )
} else {
alert ( '该浏览器不支持XDomainRequest请求,请换用其它浏览器' )
reject ( new Error ( ) )
}
} )
}
export function isLTIE ( v) {
if (
window. navigator. appName === 'Microsoft Internet Explorer' &&
parseInt (
window. navigator. appVersion
. split ( ';' ) [ 1 ]
. replace ( /[ ]/g , '' )
. replace ( 'MSIE' , '' )
) < v
) {
return true
}
return false
}
import cryptoJs from 'crypto-js'
export const encryptDes = ( message, key, iv) => {
var keyHex = cryptoJs. enc. Utf8. parse ( key)
var ivHex = cryptoJs. enc. Utf8. parse ( iv)
var encrypted = cryptoJs. DES . encrypt ( message, keyHex, {
iv: ivHex,
mode: cryptoJs. mode. CBC ,
padding: cryptoJs. pad. Pkcs7
} )
return encrypted. toString ( )
}
main.js 部分配置代码
Vue. prototype. $get = get
Vue. prototype. $post = post
页面中发请求
import { getAllCraftsman } from '@/api/urls'