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

解決Nuxt使用axios跨域問(wèn)題

 更新時(shí)間:2020年07月06日 09:25:23   作者:雨霖月寒  
這篇文章主要介紹了Nuxt使用axios跨域問(wèn)題解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

Nuxt 是 Vue 項(xiàng)目服務(wù)器端渲染(SSR)解決方案。而在使用時(shí),就會(huì)遇到前后端分離情況下的域名或端口不一致導(dǎo)致的跨域問(wèn)題。本文將介紹如何通過(guò)設(shè)置代理解決 Nuxt 與 axios 集成的跨域問(wèn)題。

解決跨域

Nuxt 使用 axios 為避免出現(xiàn)前端頁(yè)面跨域問(wèn)題,需要安裝 @nuxtjs/axios 和 @nuxtjs/proxy 兩個(gè)模塊。

用 yarn 安裝:

yarn add axios @nuxtjs/axios @nuxtjs/proxy

使用 npm 安裝:

npm install axios @nuxtjs/axios @nuxtjs/proxy

注意:不需要手動(dòng)注冊(cè) @nuxtjs/proxy 模塊,但是必須要確保它在依賴項(xiàng)中。

安裝完成后在 nuxt.config.js 文件里面添加以下配置:

module.exports = {
 /*
  ** Nuxt.js modules
  */
 modules: ["@nuxtjs/axios"],
 /*
  ** axios proxy
  */
 axios: {
  proxy: true
 },
 /*
  ** proxy
  */
 proxy: {
  "/api": "http://localhost:3000"
 },
 /*
  ** Build configuration
  ** See https://nuxtjs.org/api/configuration-build/
  */
 build: {
  vendor: ["axios"]
 }
}

到此,代理設(shè)置完成,可以測(cè)試以下跨域問(wèn)題是否解決。

擴(kuò)展 axios

創(chuàng)建 nuxt 插件,更改全局配置全局配置自定義 axios,在 plugins/ 目錄下新建 axios.js 文件:

// plugins/axios.js
export default function({ $axios, redirect }) {

 $axios.onResponse(res => {
  return res.data
 })

 $axios.onError(error => {
  const code = parseInt(error.response && error.response.status);
  if (code === 400) {
   redirect("/400");
  }
 });
}

在 nuxt.config.js 中配置 axios.js 插件:

module.exports = {
 /*
  ** Plugins to load before mounting the App
  ** https://nuxtjs.org/guide/plugins
  */
 plugins: ["@/plugins/axios"],
}

使用 axios 插件

通過(guò)上面的設(shè)置后,使用 axios 插件需要注意的是在 asyncData 內(nèi)和在 asyncData 外的使用是所不同的。

** 在 asyncData 里使用:**

async asyncData({ $axios }) {
 const ip = await $axios.get('http://icanhazip.com')
 return { ip }
}

** 在 asyncData 外使用:**

methods: {
 async fetchSomething() {
  const ip = await this.$axios.get('http://icanhazip.com')
  this.ip = ip
 }
}

更多關(guān)于 Nuxt 與 axios 的集成介紹可以查看官方文檔——Axios模塊。

附錄:nuxt使用axios的跨域處理配置

npm i axios qs
npm i @nuxtjs/axios @nuxtjs/proxy --save-dev 

plugins/axios.js

使用qs將請(qǐng)求從參數(shù)轉(zhuǎn)化位字符串

import qs from "qs";
 
export default function({ $axios, redirect }) {
 $axios.onRequest(config => {
  config.data = qs.stringify(config.data, {
   allowDots: true //Option allowDots can be used to enable dot notation
  });
  return config;
 });
 
 $axios.onResponse(response => {
  return Promise.resolve(response.data);
 });
 
 $axios.onError(error => {
  return Promise.reject(error);
 });
}

nuxt.config.js 

 plugins: [
  { src: "~plugins/axios.js", ssr: true },
 ],
 //處理跨域問(wèn)題
 modules: ["@nuxtjs/axios", "@nuxtjs/proxy"],
 axios: {
  retry: { retries: 3 },
  //開發(fā)模式下開啟debug
  debug: process.env._ENV == "production" ? false : true,
  //設(shè)置不同環(huán)境的請(qǐng)求地址
  baseURL:
   process.env._ENV == "production"
    ? "http://localhost:3000/api"
    : "http://localhost:3000/api",
  withCredentials: true,
 },
 proxy: {
  //開啟代理
  "/api/": {
   target: "http://192.168.1.2:10086/v1",
   pathRewrite: { "^/api/": "" }
  }
 }

在頁(yè)面使用使用this.$axios做請(qǐng)求

到此這篇關(guān)于解決Nuxt使用axios跨域問(wèn)題的文章就介紹到這了,更多相關(guān)Nuxt使用axios跨域內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解使用vue實(shí)現(xiàn)tab 切換操作

    詳解使用vue實(shí)現(xiàn)tab 切換操作

    這篇文章主要介紹了詳解使用vue實(shí)現(xiàn)tab操作,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • Vue3使用Signature Pad實(shí)現(xiàn)電子簽名功能

    Vue3使用Signature Pad實(shí)現(xiàn)電子簽名功能

    Vue3簽名板是一種在Vue3應(yīng)用中實(shí)現(xiàn)用戶簽名功能的組件,Vue3-signature-pad的實(shí)現(xiàn)旨在為開發(fā)者提供一個(gè)簡(jiǎn)單易用的工具,使用戶能夠在前端界面上進(jìn)行簽名操作,常見(jiàn)于電子商務(wù)、電子合同等場(chǎng)景,本文介紹了Vue3使用Signature Pad實(shí)現(xiàn)電子簽名功能,需要的朋友可以參考下
    2025-04-04
  • vue項(xiàng)目實(shí)現(xiàn)github在線預(yù)覽功能

    vue項(xiàng)目實(shí)現(xiàn)github在線預(yù)覽功能

    這篇文章主要介紹了vue項(xiàng)目實(shí)現(xiàn)github在線預(yù)覽功能,本文通過(guò)提問(wèn)兩個(gè)問(wèn)題帶領(lǐng)大家一起學(xué)習(xí)整個(gè)過(guò)程,需要的朋友可以參考下
    2018-06-06
  • 如何在Vue項(xiàng)目中使用vuex

    如何在Vue項(xiàng)目中使用vuex

    這篇文章主要介紹了如何在Vue項(xiàng)目中使用vuex問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 談?wù)勔騐ue.js引發(fā)關(guān)于getter和setter的思考

    談?wù)勔騐ue.js引發(fā)關(guān)于getter和setter的思考

    最近因?yàn)楣镜男马?xiàng)目決定使用Vue.js來(lái)做,但在使用的過(guò)程中發(fā)現(xiàn)了一個(gè)有趣的事情,因?yàn)榘l(fā)現(xiàn)的這個(gè)事情展開了一些對(duì)于getter和setter的思考,具體是什么下面通過(guò)這篇文章來(lái)一起看看吧,有需要的朋友們可以參考學(xué)習(xí)。
    2016-12-12
  • vue?3?effect作用與原理解析

    vue?3?effect作用與原理解析

    Vue3的Effect是其響應(yīng)式系統(tǒng)的核心,負(fù)責(zé)依賴追蹤和自動(dòng)響應(yīng),它通過(guò)ReactiveEffect類封裝副作用邏輯,實(shí)現(xiàn)依賴收集和觸發(fā)更新,本文介紹vue?3?effect作用與原理解析,感興趣的朋友一起看看吧
    2025-02-02
  • Vue watch 偵聽對(duì)象屬性詳解

    Vue watch 偵聽對(duì)象屬性詳解

    Vue的watch偵聽器格式有兩種:方法格式和對(duì)象格式的偵聽器,這篇文章主要介紹了Vue watch 偵聽對(duì)象屬性相關(guān)知識(shí),需要的朋友可以參考下
    2023-04-04
  • Vue實(shí)現(xiàn)裁切圖片功能

    Vue實(shí)現(xiàn)裁切圖片功能

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)裁切圖片功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • vue.js中修飾符.stop的用法解析

    vue.js中修飾符.stop的用法解析

    這篇文章主要介紹了vue.js中修飾符.stop的用法解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • vue+Element-ui實(shí)現(xiàn)分頁(yè)效果

    vue+Element-ui實(shí)現(xiàn)分頁(yè)效果

    這篇文章主要為大家詳細(xì)介紹了vue+Element-ui實(shí)現(xiàn)分頁(yè)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11

最新評(píng)論

江都市| 黔西县| 巧家县| 和政县| 江孜县| 宜阳县| 融水| 太原市| 凌云县| 象州县| 宁陵县| 湘潭县| 集安市| 阿拉善右旗| 牡丹江市| 夏津县| 随州市| 霍邱县| 新竹市| 四子王旗| 唐海县| 金塔县| 遵义县| 宣恩县| 平远县| 青冈县| 迭部县| 南乐县| 徐汇区| 繁峙县| 屯昌县| 桐庐县| 宜君县| 樟树市| 龙海市| 南投市| 襄城县| 丰原市| 彰武县| 永寿县| 饶河县|