You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
import Vue from "vue";import axios from 'axios';const qs = require('qs');var apiServer = (process.env.NODE_ENV !== 'production' && process.env.OPEN_PROXY ? '/proxyApi/' : window.SITE_CONFIG.baseUrl);var http = axios.create({ timeout: 10000, headers: {}, transformRequest: data => { if (typeof data === 'object') { return qs.stringify(data, { arrayFormat: 'brackets' }); } return data; }});export default { axios: http, $post(url, data, callback, error) { // 添加 headers 配置项
const config = { headers: { 'Content-Type': 'application/json;charset=UTF-8', 'token': Vue.cookie.get('token') } }; let p = http.post(apiServer +url, JSON.stringify(data), config); if (callback) { p.then(res => { callback(res); }) } if (error) { p.catch(err => { error(err); }); } return p; }, file:(url, data, succ, err )=>{ let requestUrl = apiServer + url; var xhr = new XMLHttpRequest(); xhr.open('POST', requestUrl, true); xhr.responseType = "blob"; xhr.withCredentials = true; xhr.setRequestHeader("X-API", "true"); xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); xhr.setRequestHeader("token", Vue.cookie.get('token') ); xhr.onreadystatechange = function (e) { if (xhr.readyState === 4) { if (xhr.status === 200) { succ(xhr.response) } else { var fr = new FileReader(); fr.onload = function(e) { var text = fr.result; console.log(text); err ? err(text) : alert("请求发生错误:" + text) }; fr.readAsText(xhr.response); } } }; xhr.send(data); }, apiServer: apiServer};
|