UNPKG

vue-django

Version:

个人实验项目, 本框架的目标是借鉴并超越django admin的自动化思想, 实现UI前端的极简快速定制开发

55 lines (46 loc) 1.43 kB
/** * Created by denishuang on 2017/7/28. */ import axios from 'axios' import Cookies from 'js-cookie' import Vue from 'vue' let instance = axios.create() // function genBaseUrl (tpl) { // let a = tpl // location.pathname.split('/').forEach((s, i) => { // a = a.replace('$' + i, s) // }) // if (a.startsWith('//')) { // a = a.slice(1) // } // return a // } instance.defaults.xsrfCookieName = 'csrftoken' instance.defaults.xsrfHeaderName = 'X-CSRFToken' instance.defaults.headers['X-REQUESTED-WITH'] = 'XMLHttpRequest' instance.interceptors.response.use(function (response) { return response }, function (error) { if (error.response) { return Promise.reject({code: error.response.status, msg: error.response.data}) } else { return Promise.reject({code: '-1', msg: error.message}) } }) Vue.prototype.$http = Vue.http = instance instance.setBaseURL = (url) => { // instance.defaults.baseURL = genBaseUrl(url) let p = location.pathname.split(/\/(mobile|dashboard)\//g)[0] if (['/', ''].includes(p)) { instance.defaults.baseURL = url } else { instance.defaults.baseURL = `${p}${url}` } if (!Cookies.get(instance.defaults.xsrfCookieName)) { instance.get('/csrf_token/') } } instance.setAuthToken = (token) => { instance.defaults.headers['Authorization'] = `Token ${token}` } export default instance