国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Vue簡單封裝axios之解決post請求后端接收不到參數問題

2024-05-06 15:44:32
字體:
來源:轉載
供稿:網友

1.在src/下新建api文件夾,api/下新建index.js和public.js

在public.js中:

import axios from 'axios';import qs from 'qs'import router from '../router'import { MessageBox} from 'mint-ui'// 注意點,按照以下寫var instance = axios.create();instance.defaults.timeout = 10000;instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';export default {  fetchGet(url, params = {}) {    return new Promise((resolve, reject) => {      axios.get(url, params).then(res => {        if(res.data.code === 302) {          MessageBox('提示', '登錄失效,請重新登錄');          MessageBox.alert('登錄失效,請重新登錄', '提示').then(action => {              router.push("/login");          });        }        resolve(res.data);      }).catch(error => {        reject(error);      })    })  },  fetchPost(url, params = {}) {    /*     axios post請求后端接收不到參數問題:    解決方案一:有效,但是兼容性不是很好,不是所有瀏覽器都支持      let data = new URLSearchParams()      for (var key in params) {        data.append(key, params[key])      }    */    // 解決方案二:使用qs模塊(axios中自帶),使用qs.stringify()序列化params    return new Promise((resolve, reject) => {      axios.post(url, qs.stringify(params)).then(res => {        resolve(res.data);      }).catch(error => {        reject(error);      })    })  }}

2.在index.js中:

import http from './public'export const getStation = (params) => {  return http.fetchGet('/hydro/rest/getBelongUser', params);}export const userLogin = (params) => {  return http.fetchPost("/hydro/rest/login", params);}

3.在Login.vue中調用post請求方法:

<template>  <div class="login">    <h1>登錄頁面</h1>    <input type="text" placeholder="請輸入用戶名" v-model="Username">    <input type="password" placeholder="請輸入密碼" v-model="Password">    <input type="button" value="登錄" @click="toLogin">  </div></template><script>import {userLogin} from "../../api/index"export default { name: 'app', data() {  return {   Username: "",   Password: ""  } }, methods: {  toLogin() {    let params = {      username: this.Username,      password: this.Password    };    userLogin(params).then(res => {      if(res.code === 200) {        this.$router.push("/home")      }    })  } }}</script>

#### 4.在Home.vue調用get請求方法

<template>  <h1 class="home">    {{stationName}}  </h1></template><script>import {getStation} from "../../api/index"export default {  data() {    return{      stationName: ""    }  },  created() {    getStation().then(res => {      this.stationName = res.msg;    })  }}</script>

總結

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 康定县| 库伦旗| 永城市| 崇信县| 河间市| 唐河县| 湘阴县| 红安县| 大荔县| 黄冈市| 克拉玛依市| 延庆县| 沁阳市| 噶尔县| 金沙县| 墨玉县| 郯城县| 安阳市| 衢州市| 双流县| 新源县| 富平县| 宜黄县| 华阴市| 保靖县| 米泉市| 沛县| 博罗县| 大关县| 灵丘县| 伊金霍洛旗| 淳安县| 乐至县| 渭南市| 保康县| 酉阳| 正安县| 乐安县| 全州县| 河北区| 兴隆县|