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

vue proxyTable的跨域中pathRewrite配置方式

 更新時(shí)間:2022年04月09日 10:50:33   作者:BraveSoul360  
這篇文章主要介紹了vue proxyTable的跨域中pathRewrite配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue瀏覽器跨域問(wèn)題和vue proxyTable跨域中pathRewrite配置

vue瀏覽器跨域問(wèn)題

當(dāng)瀏覽器報(bào)如下錯(cuò)誤時(shí),則說(shuō)明請(qǐng)求跨域了。

localhost/:1 Failed to load http://www.thenewstep.cn/test/testToken.php: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://localhost:8080’ is therefore not allowed access. If an opaque response serves your needs, set the request’s mode to ‘no-cors’ to fetch the resource with CORS disabled.

為什么會(huì)跨域

因?yàn)闉g覽器同源策略的限制,不是同源的腳本不能操作其他源下面的對(duì)象。

什么是同源策略

同源策略(Same origin policy)是一種約定,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,則瀏覽器的正常功能可能都會(huì)受到影響。

可以說(shuō)Web是構(gòu)建在同源策略基礎(chǔ)之上的,瀏覽器只是針對(duì)同源策略的一種實(shí)現(xiàn)。

簡(jiǎn)單的來(lái)說(shuō):協(xié)議、IP、端口三者都相同,則為同源

解決辦法

跨域的解決辦法有很多,比如script標(biāo)簽 、jsonp、后端設(shè)置cros等等…,但是我這里講的是webpack配置vue 的 proxyTable解決跨域。

pathRewrite

簡(jiǎn)單來(lái)說(shuō),pathRewrite是使用proxy進(jìn)行代理時(shí),對(duì)請(qǐng)求路徑進(jìn)行重定向以匹配到正確的請(qǐng)求地址,

dev: {
? ? // Paths
? ? assetsSubDirectory: 'static',
? ? assetsPublicPath: '/',
? ? proxyTable: {
? ? ? '/api': {
? ? ? ? target: 'http://XX.XX.XX.XX:8083',
? ? ? ? changeOrigin: true,
? ? ? ? pathRewrite: {
? ? ? ? ? '^/api': '/api' ? // 這種接口配置出來(lái) ? ? http://XX.XX.XX.XX:8083/api/login
? ? ? ? ? //'^/api': '/' 這種接口配置出來(lái) ? ? http://XX.XX.XX.XX:8083/login
? ? ? ? }
? ? ? }
? ? }
? },

如何不配置pathRewrite 請(qǐng)求就被轉(zhuǎn)發(fā)到 http://XX.XX.XX.XX:8083 并把相應(yīng)uri帶上。

比如:localhost:8080/api/xxx 會(huì)被轉(zhuǎn)發(fā)到http://XX.XX.XX.XX:8083/api/xxx

配置完成后需要重新編譯一遍 , 調(diào)用接口的時(shí)候

? ? ? ? // 獲取菜單權(quán)限
? ? ? getPermission(){
? ? ? ? this.$ajaxget({
? ? ? ? ? url: '/api/getPermission',
? ? ? ? ? data: {},
? ? ? ? ? isLayer: true,
? ? ? ? ? successFc: data => {
? ? ? ? ? ? console.log(data.data)
? ? ? ? ? }
? ? ? ? })

2種數(shù)據(jù)請(qǐng)求方式: fecth和axios

1、fetch方式

在需要請(qǐng)求的頁(yè)面,只需要這樣寫(xiě)(/apis+具體請(qǐng)求參數(shù)),如下:

fetch("/apis/test/testToken.php", {
? ? ? method: "POST",
? ? ? headers: {
? ? ? ? "Content-type": "application/json",
? ? ? ? token: "f4c902c9ae5a2a9d8f84868ad064e706"
? ? ? },
? ? ? body: JSON.stringify(data)
? ? })
? ? ? .then(res => res.json())
? ? ? .then(data => {
? ? ? ? console.log(data);
? ? ? });

2、axios方式

main.js代碼

import Vue from 'vue'
import App from './App'
import axios from 'axios'
Vue.config.productionTip = false
Vue.prototype.$axios = axios //將axios掛載在Vue實(shí)例原型上
// 設(shè)置axios請(qǐng)求的token
axios.defaults.headers.common['token'] = 'f4c902c9ae5a2a9d8f84868ad064e706'
//設(shè)置請(qǐng)求頭
axios.defaults.headers.post["Content-type"] = "application/json"

axios請(qǐng)求頁(yè)面代碼

this.$axios.post('/apis/test/testToken.php',data).then(res=>{
? ? ? ? console.log(res)
})

代理配置proxy下pathrewrite失效踩坑

從網(wǎng)上直接找到的代碼復(fù)制過(guò)來(lái)報(bào)錯(cuò),最后找了一下午為什么失效,最后發(fā)現(xiàn)問(wèn)題直接破防了

錯(cuò)誤:

pathRewrite: {?
? " ?^/api ?" ?: "" //若請(qǐng)求的路徑在目標(biāo)url下但不在/api 下,則將其轉(zhuǎn)換成空
? },

正確:

pathRewrite: {?
? "^/api": "" //若請(qǐng)求的路徑在目標(biāo)url下但不在/api 下,則將其轉(zhuǎn)換成空
? ?},

原因:

直接復(fù)制過(guò)來(lái)的 "  ^/api  "  : ""里面多了兩個(gè)空格,判斷url的時(shí)候就獲取不到/api,刪除空格就解決問(wèn)題了

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

相關(guān)文章

  • Vue中rem與postcss-pxtorem的應(yīng)用詳解

    Vue中rem與postcss-pxtorem的應(yīng)用詳解

    這篇文章主要介紹了Vue中rem與postcss-pxtorem的應(yīng)用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Vue iview-admin框架二級(jí)菜單改為三級(jí)菜單的方法

    Vue iview-admin框架二級(jí)菜單改為三級(jí)菜單的方法

    這篇文章主要介紹了Vue iview-admin框架二級(jí)菜單改為三級(jí)菜單的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • vue項(xiàng)目中的類(lèi)使用方式

    vue項(xiàng)目中的類(lèi)使用方式

    這篇文章主要介紹了vue項(xiàng)目中的類(lèi)使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • ResizeObserver?loop?limit?exceeded報(bào)錯(cuò)原因及解決方案

    ResizeObserver?loop?limit?exceeded報(bào)錯(cuò)原因及解決方案

    這篇文章主要給大家介紹了關(guān)于ResizeObserver?loop?limit?exceeded報(bào)錯(cuò)原因及解決的相關(guān)資料,公司項(xiàng)目監(jiān)聽(tīng)系統(tǒng)中發(fā)現(xiàn)一個(gè)高頻錯(cuò)誤ResizeObserver loop limit exceeded,而瀏覽器的console中卻沒(méi)有提示,需要的朋友可以參考下
    2023-09-09
  • vue從一個(gè)頁(yè)面跳轉(zhuǎn)到另一個(gè)頁(yè)面并攜帶參數(shù)的解決方法

    vue從一個(gè)頁(yè)面跳轉(zhuǎn)到另一個(gè)頁(yè)面并攜帶參數(shù)的解決方法

    這篇文章主要介紹了vue從一個(gè)頁(yè)面跳轉(zhuǎn)到另一個(gè)頁(yè)面并攜帶參數(shù)的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 基于Vue的Drawer組件實(shí)現(xiàn)

    基于Vue的Drawer組件實(shí)現(xiàn)

    本文將從零實(shí)現(xiàn)一個(gè)Drawer抽屜組件,組件用 vue2 語(yǔ)法寫(xiě)的,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 在Vue3項(xiàng)目中使用如何echarts問(wèn)題

    在Vue3項(xiàng)目中使用如何echarts問(wèn)題

    這篇文章主要介紹了在Vue3項(xiàng)目中使用如何echarts問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Element UI 自定義正則表達(dá)式驗(yàn)證方法

    Element UI 自定義正則表達(dá)式驗(yàn)證方法

    今天小編就為大家分享一篇Element UI 自定義正則表達(dá)式驗(yàn)證方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • 關(guān)于element-ui日期時(shí)間選擇器選不中12小時(shí)以后的時(shí)間詳解

    關(guān)于element-ui日期時(shí)間選擇器選不中12小時(shí)以后的時(shí)間詳解

    在之前做個(gè)一個(gè)組件頁(yè)面中,引用了element-ui組件的日期選擇器,遇到的一個(gè)小問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于element-ui日期時(shí)間選擇器選不中12小時(shí)以后時(shí)間的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • vue3封裝AES(CryptoJS)前端加密解密通信代碼實(shí)現(xiàn)

    vue3封裝AES(CryptoJS)前端加密解密通信代碼實(shí)現(xiàn)

    防止數(shù)據(jù)被爬取,前后端傳參接收參數(shù)需要加密處理,使用AES加密,這篇文章主要給大家介紹了關(guān)于vue3封裝AES(CryptoJS)前端加密解密通信代碼實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2023-12-12

最新評(píng)論