axios: 至關於ajax,以前是用vue-resourse,不過如今這個模塊不維護了,基本使用axios
vue-router: 是vue的路由
vuex: 是vue的狀態管理,方便組件間通訊html
npm install vuex axios --save-dev
axios配置以下:前端
// 引入axios import axios from 'axios' // 建立axios實例 const httpService = axios.create({ baseURL: "http://localhost:8081", // url前綴 timeout: 3000 // 請求超時時間 }); // request攔截器 httpService.interceptors.request.use( config => { // 根據條件加入token-安全攜帶 if (true) { // 需自定義 // 讓每一個請求攜帶token config.headers['User-Token'] = ''; } return config; }, error => { // 請求錯誤處理 Promise.reject(error); } ) // respone攔截器 httpService.interceptors.response.use( response => { // 統一處理狀態 const res = response.data; if (res.statuscode != 1) { // 需自定義 // 返回異常 return Promise.reject({ status: res.statuscode, message: res.message }); } else { return response.data; } }, // 處理處理 error => { if (error && error.response) { switch (error.response.status) { case 400: error.message = '錯誤請求'; break; case 401: error.message = '未受權,請從新登陸'; break; case 403: error.message = '拒絕訪問'; break; case 404: error.message = '請求錯誤,未找到該資源'; break; case 405: error.message = '請求方法未容許'; break; case 408: error.message = '請求超時'; break; case 500: error.message = '服務器端出錯'; break; case 501: error.message = '網絡未實現'; break; case 502: error.message = '網絡錯誤'; break; case 503: error.message = '服務不可用'; break; case 504: error.message = '網絡超時'; break; case 505: error.message = 'http版本不支持該請求'; break; default: error.message = `未知錯誤${error.response.status}`; } } else { error.message = "鏈接到服務器失敗"; } return Promise.reject(error); } ) /*網絡請求部分*/ /* * get請求 * url:請求地址 * params:參數 * */ export function get(url, params = {}) { return new Promise((resolve, reject) => { httpService({ url: url, method: 'get', params: params }).then(response => { resolve(response); }).catch(error => { reject(error); }); }); } /* * post請求 * url:請求地址 * params:參數 * */ export function post(url, params = {}) { return new Promise((resolve, reject) => { httpService({ url: url, method: 'post', data: params }).then(response => { resolve(response); }).catch(error => { reject(error); }); }); } /* * 文件上傳 * url:請求地址 * params:參數 * */ export function fileUpload(url, params = {}) { return new Promise((resolve, reject) => { httpService({ url: url, method: 'post', data: params, headers: { 'Content-Type': 'multipart/form-data' } }).then(response => { resolve(response); }).catch(error => { reject(error); }); }); } export default { get, post, fileUpload }
main.js配置:vue
import axios from './util/axios' Vue.prototype.$ajax = axios //this.$ajax.post('/login/login', {});
解決vue-cli測試端口隨時變化的方式:ios
npm install portfinder@1.0.21//在當前機器上查找打開端口的簡單工具
打包項目:nginx
npm run build
nginx前端服務器:
修改服務器默認端口
將打包後的項目文件dist目錄下的文件放入nginx/html更目錄。ajax
cd D:\nginx-1.17.3//進入nginx安裝目錄 start nginx//啓動nginx服務器 tasklist /fi "imagename eq nginx.exe"//查看nginx任務進程 # 重啓Nginx nginx -s reload # 強制中止nginx服務器,若是有未處理的數據,丟棄 nginx -s stop # 優雅的中止nginx服務器,若是有未處理的數據,等待處理完成以後中止 nginx -s quit