欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue如何解決axios請求前端跨域問題

 更新時間:2021年10月24日 10:58:09   作者:浪漫主義碼農(nóng)  
vue項(xiàng)目中,前端使用axios與后臺進(jìn)行數(shù)據(jù)請求或者提交的時候,如果后臺沒有設(shè)置跨域,瀏覽器做數(shù)據(jù)請求的時候就會報(bào)錯,這篇文章主要給大家介紹了關(guān)于vue如何解決axios請求前端跨域問題的相關(guān)資料,需要的朋友可以參考下

前言

最近在寫純前端的vue項(xiàng)目的時候,碰到了axios請求本機(jī)的資源的時候,出現(xiàn)了訪問報(bào)404的問題。這就讓我很難受。查詢了資料原來是跨域的問題。

在正常開發(fā)中跨域問題有很多的解決方案。最常見的就是后端修改響應(yīng)頭。但是前端也可以解決,通過反向代理。為了防止下一次這樣的錯誤出現(xiàn),記錄一下,總結(jié)一下。

所以現(xiàn)在我們來復(fù)盤一下,然后解決掉。

一、為什么會出現(xiàn)跨域的問題?

跨域:瀏覽器從一個域名的網(wǎng)頁去請求另一個域名的資源時,域名、端口、協(xié)議任一不同,都是跨域。

在前后端分離的模式下,前后端的域名是不一致的,此時就會發(fā)生跨域訪問問題??缬騿栴}來源于JavaScript的同源策略,即只有 協(xié)議+主機(jī)名+端口號(如存在)相同,則允許相互訪問。也就是說JavaScript只能訪問和操作自己域下的資源,不能訪問和操作其他域下的資源。跨域問題是針對JS和ajax的。而axios是通過Promise實(shí)現(xiàn)對ajax技術(shù)的一種封裝,也同樣存在跨域問題。

二、解決方案

這里我就使用本機(jī)的開啟兩個不同的端口來測試。

未處理跨域前的報(bào)錯

沒有做跨域處理請求是這樣的

 axios.get('http://localhost:8080/getData')
 .then(res => {
   console.log(res)
 })
 .catch(err => {
   console.error(err); 
 })

跨域資源共享(CORS)

前端進(jìn)行反向代理來解決跨域問題。原理圖如下:

1、vue項(xiàng)目的端口是8081

2、自己電腦開啟了一個8080的端口,請求/getData就會放回json數(shù)據(jù)。

3、配置代理

1.在vue2.0中

修改config文件夾下的index.js文件,在proxyTable中加上如下代碼:

   proxyTable: {
      '/apis': {
        target: 'http://localhost:8080/',  //要解決跨域的接口的域名
        secure:false,           //如果是https接口,需要配置這個參數(shù)
        changeOrigin: true,  // 如果接口跨域,需要進(jìn)行這個參數(shù)配置
        pathRewrite: {
          '^/apis': ''  // 路徑重寫
        }
      },
    },

然后在請求中axios中這樣寫

 axios.get('apis/getData')
 .then(res => {
   console.log(res)
 })
 .catch(err => {
   console.error(err); 
 })

分析:

target后面的就是需要請求的網(wǎng)址的公共部分,然后用/apis來代理這個,最后重寫一些路徑,請求的時候使用的我們的代理的apis來作為前綴。

這個前綴我們可以自定義,proxyTable是對象,所以我們可以配多個代理。

跨域解決

2.在vue3.0中

vue-cli3 腳手架搭建完成后,項(xiàng)目目錄中沒有 vue.config.js 文件,需要手動創(chuàng)建

新建一個vue.config.js,配置以下信息,同樣可以解決。

module.exports = {   
    devServer: {
        proxy: {
            '^/api': {
                target: 'http://localhost:8080/',//接口的前綴
                ws:true,//代理websocked
                changeOrigin:true,//虛擬的站點(diǎn)需要更管origin
                pathRewrite:{
                    '^/api':''//重寫路徑
                }
            }
        }
    }
}

小結(jié):

changeOrigin: true :開啟代理:在本地會創(chuàng)建一個虛假服務(wù)器,然后發(fā)送請求的數(shù)據(jù),并同時接收請求的數(shù)據(jù),這樣服務(wù)端和服務(wù)端就可以進(jìn)行數(shù)據(jù)的交互。

apis就是接口實(shí)際請求的前綴,去代理了我們的實(shí)際的接口前綴的公共部分,也就是協(xié)議+主機(jī)名+端口號

比如 請求接口為localhost:8080/getData 我們只需要傳入:getData
那么公共的域名就是 localhost:8080/,我們就是在請求接口的公共域名localhost:8080/改為api/即可!

把項(xiàng)目運(yùn)行起來可以看到接口請求的路徑為 :localhost:8081/apis/getData

而進(jìn)過代理后,實(shí)際的請求路徑是 : localhost:8080/getData

寫在最后

在學(xué)習(xí)中還是要多看官方文檔,在跨域等配置問題上,官方文檔也給出了很多的配置信息,vue cli配置

總結(jié)一下最近的現(xiàn)象:只要累不死,就往死里卷。加油各位。

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

相關(guān)文章

  • vue圖片懶加載代碼實(shí)現(xiàn)

    vue圖片懶加載代碼實(shí)現(xiàn)

    這篇文章主要給大家介紹了關(guān)于vue圖片懶加載代碼實(shí)現(xiàn)的相關(guān)資料,所謂圖片懶加載是指當(dāng)我們?yōu)g覽頁面時,只加載我們?yōu)g覽器可視區(qū)的圖片,向下滾動時再繼續(xù)加載后面的圖片,需要的朋友可以參考下
    2023-07-07
  • 講解vue-router之什么是動態(tài)路由

    講解vue-router之什么是動態(tài)路由

    這篇文章主要介紹了講解vue-router之什么是動態(tài)路由,詳細(xì)的介紹了什么是動態(tài)路由,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Vue中的MVVM模式使用及說明

    Vue中的MVVM模式使用及說明

    這篇文章主要介紹了Vue中的MVVM模式使用及說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • vue中實(shí)現(xiàn)左右聯(lián)動的效果

    vue中實(shí)現(xiàn)左右聯(lián)動的效果

    這篇文章主要介紹了vue中實(shí)現(xiàn)左右聯(lián)動的效果,非常不錯,具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-06-06
  • Vue3中Vite和Vue-cli的特點(diǎn)與區(qū)別詳解

    Vue3中Vite和Vue-cli的特點(diǎn)與區(qū)別詳解

    vue-cli是Vue早期推出的一款腳手架,使用webpack創(chuàng)建Vue項(xiàng)目,可以選擇安裝需要的各種插件,比如Vuex、VueRouter,下面這篇文章主要給大家介紹了關(guān)于Vue3中Vite和Vue-cli的特點(diǎn)與區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Vue中跨標(biāo)簽通信詳解

    Vue中跨標(biāo)簽通信詳解

    這篇文章主要為大家詳細(xì)介紹了介紹了Vue中跨標(biāo)簽通信的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • Vue打包程序部署到Nginx 點(diǎn)擊跳轉(zhuǎn)404問題

    Vue打包程序部署到Nginx 點(diǎn)擊跳轉(zhuǎn)404問題

    這篇文章主要介紹了Vue打包程序部署到Nginx 點(diǎn)擊跳轉(zhuǎn)404問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Vue中常用的rules校驗(yàn)規(guī)則的實(shí)現(xiàn)

    Vue中常用的rules校驗(yàn)規(guī)則的實(shí)現(xiàn)

    在vue開發(fā)中,難免遇到各種表單校驗(yàn),本文主要介紹了Vue中常用的rules校驗(yàn)規(guī)則的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • 利用Vue.js實(shí)現(xiàn)checkbox的全選反選效果

    利用Vue.js實(shí)現(xiàn)checkbox的全選反選效果

    最近用vue做了兩個項(xiàng)目,都需要實(shí)現(xiàn)全選反選的功能,所以想著記錄下分享給大家,方便自己或者有需要的朋友們參考講學(xué)習(xí),所以下面這篇文章主要介紹了利用Vue.js實(shí)現(xiàn)checkbox的全選反選效果,需要的朋友可以一起來學(xué)習(xí)學(xué)習(xí)。
    2017-01-01
  • Vue做一個簡單的隨機(jī)點(diǎn)名冊

    Vue做一個簡單的隨機(jī)點(diǎn)名冊

    這篇文章主要介紹的是如何用Vue做一個簡單的隨機(jī)點(diǎn)名冊,主要是做個簡單的點(diǎn)名器,不做樣式,需要的朋友可以參考一下,希望對你有所幫助
    2021-12-12

最新評論