最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue跨域處理方式(vue項(xiàng)目中baseUrl設(shè)置問題)

 更新時(shí)間:2022年05月25日 14:12:47   作者:zcm629  
這篇文章主要介紹了vue跨域處理方式(vue項(xiàng)目中baseUrl設(shè)置問題),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue跨域處理(baseUrl設(shè)置問題)

一、方法一

在公用文件common.js中設(shè)置baseUrl

export var baseUrl = process.env.NODE_ENV === 'production' ? window.g.ApiUrl : '/api'

該方法的優(yōu)點(diǎn):在項(xiàng)目打包時(shí),static下面的文件是不會(huì)被webpack處理的,所以可以通過改變static下config.js中的值,更改服務(wù)器地址。

在main.js中設(shè)置全局的axios配置

import axios from 'axios'
import {baseUrl} from '@/assets/js/common.js'?
axios.defaults.baseURL= baseUrl

在api_message.js中聲名調(diào)用接口的方法

import qs from 'qs'
?
export function messagelist (params = {}) {
? return axios.post('/event/list.do', qs.stringify(params))
}

注意:此處引入qs的原因

axios默認(rèn)是 json 格式提交,確認(rèn)后臺(tái)是否做了對(duì)應(yīng)的支持;若是只能接受傳統(tǒng)的表單序列化,就需要自己寫一個(gè)轉(zhuǎn)義的方法,或者用qs依賴。

組件中調(diào)用

import {messagelist} from '@/assets/js/api_message.js'
 
export default {
  name: 'ShopList',
  components: { Item },
  data() {
    return {
      list: []
    }
  },
  methods: {
    getList() {
      let listdata = {
        limit: 8,
        offset: 0,
        statueType: this.statueType,
        condition: this.condition
      }
      messagelist(listdata).then(response => {
        if (response.data.length > 0) {
          this.list = response.data
        }
      }).catch(error => {
        console.debug(error)
      })
    }
  }
}

二、方法二

開發(fā)環(huán)境:

生產(chǎn)環(huán)境:

在單個(gè)js中聲名接口

import axios from 'axios'
import qs from 'qs'
const instance = axios.create({
  baseURL: baseUrl
})
export function login (params = {}) {
  return instance.post('/duty/login', qs.stringify(params))
}

注意:在有的編輯器中,會(huì)報(bào)baseUrl未聲名,但是不影響使用 

三、方法三

開發(fā)環(huán)境

生產(chǎn)環(huán)境

在文件中使用

import axios from 'axios'
import qs from 'qs'
const instance = axios.create({
  baseURL: process.env.API
})

vue請(qǐng)求不同的域名,baseURL配置

1、index.js

? ? proxyTable: {?? ??? ??? ?//解決跨域問題
? ?? ??? ??? ?"/api":{?? ??? ?//設(shè)置第一代理
? ? ? ? ? ? target: 'http://192.168.105.42:9090',?? ?
?? ??? ??? ?//secure:false,?? ??? ??? ??? ??? ?//如果是https接口,需要配置這個(gè)參數(shù)
? ? ? ? ? ? changeOrigin: true,?? ??? ??? ?//如果接口跨域需要配置這個(gè)參數(shù)
? ? ? ? ? ? pathRewrite: {
? ? ? ? ? ? ? ? '^/api': '/'?? ??? ?
? ? ? ? ? ? }
? ? ? ?},
? ? ? ?
? ? ? ?'/navy':{ // 設(shè)置第二個(gè)代理
? ? ? ? ?? ?target: "http://192.168.105.42:9095",
? ? ? ??? ? ?? ?changeOrigin: true,
? ? ? ? ?? ?pathRewrite: {
?? ? ? ? ? ? ? ?'^/navy': '/'?? ??? ?
?? ? ? ? ? ?} ?
? ? ?? ?},
? ? },

2、main.js

?? ?axios.defaults.baseM1URL= "/api";
?? ?axios.defaults.baseM2URL= "/navy";
?? ?
?? ?//對(duì)get請(qǐng)求傳遞過來的參數(shù)處理
?? ?function paramsToUrl(url, params) {
?? ? ? ?if (!params) return url
?? ? ? ?for (var key in params) {
?? ? ? ? ? ?if (params[key] && params[key] != 'undefined') {
?? ? ? ? ? ? ? ?if (url.indexOf('?') != -1) {
?? ? ? ? ? ? ? ? ? ?url += '&' + '' + key + '=' + params[key] || '' + ''
?? ? ? ? ? ? ? ?} else {
?? ? ? ? ? ? ? ? ? ?url += '?' + '' + key + '=' + params[key] || '' + ''
?? ? ? ? ? ? ? ?}
?? ? ? ? ? ?}
?? ? ? ?}
?? ? ? ?return url
?? ?}
?? ?
?? ?function requireData(url,params,type,item){
?? ??? ?if(!url) return false
?? ??? ?switch(item){
?? ??? ??? ?case 'M1':
?? ??? ??? ??? ?url=axios.defaults.baseM1URL+url
?? ??? ??? ??? ?break;
?? ??? ??? ?case 'M2':
?? ??? ??? ??? ?url=axios.defaults.baseM2URL+url
?? ??? ??? ??? ?break;?? ??? ??? ?
?? ??? ??? ?default:
?? ??? ??? ??? ?url=axios.defaults.baseM4URL+url
?? ??? ?}
?? ?
?? ??? ?if(type==='get'){
?? ??? ??? ?url=paramsToUrl(url, params)
?? ??? ??? ?return new Promise((resolve,reject)=>{
?? ??? ??? ??? ?Axios.get(url,params).then(res=>{
?? ??? ??? ??? ??? ?resolve(res.data)
?? ??? ??? ??? ??? ?}).catch(err=>{
?? ??? ??? ??? ??? ??? ?reject(err)
?? ??? ??? ??? ??? ?})
?? ??? ??? ?})
?? ??? ?}else{
?? ??? ??? ?return new Promise((resolve,reject)=>{
?? ??? ??? ??? ?Axios.post(url,params).then(res=>{
?? ??? ??? ??? ??? ?resolve(res.data)
?? ??? ??? ??? ??? ?}).catch(err=>{
?? ??? ??? ??? ??? ??? ?reject(err)
?? ??? ??? ??? ??? ?})
?? ??? ??? ?})
?? ??? ?}
?? ?
?? ?}
?? ?
?? ?//->接口1的請(qǐng)求數(shù)據(jù)方法?? ??? ? IP地址為:http://192.168.105.42:9090調(diào)該方法
?? ??? ?Vue.prototype.reqM1Service=function(url,params,type){
?? ??? ??? ?return requireData.call(this,url,params,type,'M1')
?? ??? ?}
?? ?//->接口2的請(qǐng)求數(shù)據(jù)方法?? ??? ? IP地址為:http://192.168.105.42:9095調(diào)該方法
?? ??? ?Vue.prototype.reqM2Service=function(url,params,type){
?? ??? ??? ?return requireData.call(this,url,params,type,'M2')
?? ??? ?}

3、mine.vue

?? ? ? ?this.reqM1Service('/bsApi/Home/AddUserFeedback', params).then(
?? ? ? ? ?res => {
?? ? ? ? ?? ?if(res.status == 200){
?? ? ? ? ? ?? ??? ?_this.$toast.success({
?? ??? ??? ??? ??? ?message: '提交成功',
?? ??? ??? ??? ??? ?forbidClick: true,
?? ??? ??? ??? ??? ?duration:1000?? ??? ??? ??? ??? ??? ??? ??? ?
?? ??? ??? ??? ?})?? ? ? ? ?? ?
?? ??? ??? ?}
?? ? ? ? ?}
?? ? ? ?);

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • 在Vue3中實(shí)現(xiàn)四種全局狀態(tài)數(shù)據(jù)的統(tǒng)一管理的方法

    在Vue3中實(shí)現(xiàn)四種全局狀態(tài)數(shù)據(jù)的統(tǒng)一管理的方法

    在開發(fā)中,通常遇到四種全局狀態(tài)數(shù)據(jù):異步數(shù)據(jù)、同步數(shù)據(jù),傳統(tǒng)的Vue3使用不同機(jī)制處理這些數(shù)據(jù),而Zova框架通過Model機(jī)制來統(tǒng)一管理,簡(jiǎn)化了數(shù)據(jù)處理流程,提高了代碼的可維護(hù)性,本文介紹在Vue3中實(shí)現(xiàn)四種全局狀態(tài)數(shù)據(jù)的統(tǒng)一管理的方法,感興趣的朋友一起看看吧
    2024-10-10
  • vue修改數(shù)據(jù)視圖更新原理學(xué)習(xí)

    vue修改數(shù)據(jù)視圖更新原理學(xué)習(xí)

    這篇文章主要為大家介紹了vue修改數(shù)據(jù)視圖更新原理學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • 很棒的vue彈窗組件

    很棒的vue彈窗組件

    這篇文章主要為大家詳細(xì)介紹了vue彈窗組件的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Ant?Design?Vue?走馬燈實(shí)現(xiàn)單頁多張圖片輪播效果

    Ant?Design?Vue?走馬燈實(shí)現(xiàn)單頁多張圖片輪播效果

    這篇文章主要介紹了Ant?Design?Vue?走馬燈實(shí)現(xiàn)單頁多張圖片輪播,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • vscode jsconfig.json 使用簡(jiǎn)介

    vscode jsconfig.json 使用簡(jiǎn)介

    通過jsconfig.json文件定義一個(gè)JavaScript項(xiàng)目,目錄中是否存在此類文件表示該目錄是JavaScript項(xiàng)目的根目錄,文件本身可以選擇列出屬于項(xiàng)目的文件,要從項(xiàng)目中排除的文件以及編譯器選項(xiàng),這篇文章主要介紹了vscode jsconfig.json 使用說明,需要的朋友可以參考下
    2023-09-09
  • el-tree設(shè)置選中高亮/焦點(diǎn)高亮、選中節(jié)點(diǎn)加深背景及更改字體顏色等的方法

    el-tree設(shè)置選中高亮/焦點(diǎn)高亮、選中節(jié)點(diǎn)加深背景及更改字體顏色等的方法

    el-tree默認(rèn)有較淺的背景色,這里業(yè)務(wù)需要,選中節(jié)點(diǎn)的字體高亮,更改顏色,下面這篇文章主要給大家介紹了關(guān)于el-tree選中高亮/焦點(diǎn)高亮、選中節(jié)點(diǎn)加深背景及更改字體顏色等的設(shè)置方法,需要的朋友可以參考下
    2022-12-12
  • vue利用插件實(shí)現(xiàn)按比例切割圖片

    vue利用插件實(shí)現(xiàn)按比例切割圖片

    這篇文章主要為大家詳細(xì)介紹了vue利用插件實(shí)現(xiàn)按比例切割圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • vue中tab選項(xiàng)卡的實(shí)現(xiàn)思路

    vue中tab選項(xiàng)卡的實(shí)現(xiàn)思路

    今天給大家分享vue中tab 選項(xiàng)卡的一些套路,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-11-11
  • vue渲染方式render和template的區(qū)別

    vue渲染方式render和template的區(qū)別

    這篇文章主要介紹了vue渲染方式render和template的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • vue使用Swiper踩坑解決避坑

    vue使用Swiper踩坑解決避坑

    這篇文章主要為大家介紹了vue使用Swiper踩坑及解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05

最新評(píng)論

宜良县| 乃东县| 丰原市| 浙江省| 屯昌县| 太仓市| 桐城市| 土默特右旗| 黎川县| 尤溪县| 嘉兴市| 天台县| 高碑店市| 锦州市| 茶陵县| 遂昌县| 交城县| 锦屏县| 新干县| 宿迁市| 乃东县| 界首市| 清苑县| 眉山市| 阜城县| 佛冈县| 湘西| 沙洋县| 呼伦贝尔市| 微山县| 玉树县| 红安县| 抚宁县| 来安县| 兖州市| 小金县| 淳化县| 丰镇市| 通河县| 郓城县| 安福县|