国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue解決跨域訪問(wèn)問(wèn)題(個(gè)人學(xué)習(xí)筆記六)

這篇具有很好參考價(jià)值的文章主要介紹了vue解決跨域訪問(wèn)問(wèn)題(個(gè)人學(xué)習(xí)筆記六)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

友情提醒

先看文章目錄,大致了解知識(shí)點(diǎn)結(jié)構(gòu),直接點(diǎn)擊文章目錄可以跳轉(zhuǎn)到文章指定位置。

第一章、跨越問(wèn)題解決

1.1)什么是跨域問(wèn)題?

vue單頁(yè)應(yīng)用項(xiàng)目開(kāi)發(fā)時(shí),避免不了要請(qǐng)求后端,這時(shí)通常就會(huì)出現(xiàn)跨域問(wèn)題
瀏覽器從一個(gè)域名的網(wǎng)頁(yè)去請(qǐng)求另一個(gè)域名的資源時(shí),域名、端口、協(xié)議任一不同,都會(huì)導(dǎo)致跨域問(wèn)題。即前端接口去調(diào)用不在同一個(gè)域內(nèi)的后端服務(wù)器而產(chǎn)生的問(wèn)題。

1.2)第一種解決方式:后端設(shè)置允許跨域訪問(wèn)

注意:但在生產(chǎn)環(huán)境下,為了安全起見(jiàn),還是建議不要設(shè)置允許跨域訪問(wèn),或者 限制允許跨域的IP
例如:SpringMVC允許跨域的設(shè)置
1.使用的方式用@Controller和@CrossOrgin一起使用,可以實(shí)現(xiàn)跨域!
只有Spring版本從4.2開(kāi)始才有跨域支持!

//某個(gè)方法支持跨域訪問(wèn):在方法上增加@CrossOrigin注解
@RequestMapping("/crossDomain2.action")
@ResponseBody
@CrossOrigin
public String crossDomain2(HttpServletRequest req, HttpServletResponse res, String name){
    return null;
}

整個(gè)Controller都支持跨域訪問(wèn)

//整個(gè)Controller都支持跨域訪問(wèn),在類(lèi)上面加上注解@CrossOrigin
@Controller
@CrossOrigin
public class TestController {

}

2.使用定義全局的跨域配置:可以通過(guò)實(shí)現(xiàn)WebMvcConfigurer并重寫(xiě) addCorsMappings方法來(lái)實(shí)現(xiàn)跨域
3.使用過(guò)濾器方式

public class HeaderFilter implements Filter{
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
            throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest)req;
        HttpServletResponse response = (HttpServletResponse) res;
        String originHeader = request.getHeader("Origin");
        response.setHeader("Access-Control-Allow-Origin", originHeader);
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "0");
        response.setHeader("Access-Control-Allow-Headers", "Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With,userId,token");
        response.setHeader("Access-Control-Allow-Credentials", "true");
        response.setHeader("XDomainRequestAllowed","1");
        response.setHeader("XDomainRequestAllowed","1");
        chain.doFilter(request, response);
    }
}

1.3)第二種解決方式:前端配置代理

代理服務(wù)器的主要思想是通過(guò)建立一個(gè)端口號(hào)和前端相同的代理服務(wù)器進(jìn)行中轉(zhuǎn),從而解決跨域問(wèn)題。因?yàn)榇矸?wù)器與前端處于同一個(gè)域中,不會(huì)產(chǎn)生跨域問(wèn)題;而且代理服務(wù)器與服務(wù)器之間的通信是后端之間的通信,不會(huì)產(chǎn)生跨域問(wèn)題。
原理:瀏覽器和服務(wù)器當(dāng):協(xié)議、ip、端口號(hào)有一個(gè)不一致,就是違背同源策略
找一個(gè)和瀏覽器同源的服務(wù)器,讓這個(gè)服務(wù)器幫我們代理給別的服務(wù)器發(fā)請(qǐng)求服務(wù)器之間不必遵守同源策略

第二章、配置代理服務(wù)器

vue-cli配置代理的兩種方法:都要編寫(xiě)vue.config.js
vue 允許跨域訪問(wèn),前端知識(shí)匯總,vue.js,學(xué)習(xí),筆記

2.1)配置簡(jiǎn)單代理服務(wù)器

①優(yōu)點(diǎn):配置簡(jiǎn)單,請(qǐng)求資源時(shí)直接發(fā)給前端(8080)即可
②缺點(diǎn):不能配置多個(gè)代理,不能靈活的控制請(qǐng)求是否走代理
③工作方式:若按照上述配置代理,當(dāng)請(qǐng)求了不存在的資源時(shí),那么該請(qǐng)求就 會(huì)轉(zhuǎn)發(fā)給服務(wù)器(有限匹配前端資源)

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,//對(duì)使用的JS 語(yǔ)法進(jìn)行轉(zhuǎn)譯  不同版本使用不同
  // 開(kāi)啟代理服務(wù)器,注意:這里的端口號(hào)寫(xiě)后端的端口號(hào)(方式一)
  //簡(jiǎn)單代理服務(wù)器
  devServer:{
    port:8080,//當(dāng)前前端服務(wù)器的端口號(hào)  不寫(xiě)默認(rèn)是8080
    
    proxy:"http://127.0.0.1:8081"//代理服務(wù)器
  }
})

vue 允許跨域訪問(wèn),前端知識(shí)匯總,vue.js,學(xué)習(xí),筆記

2.2)多個(gè)代理配置

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,//對(duì)使用的JS 語(yǔ)法進(jìn)行轉(zhuǎn)譯  不同版本使用不同
  // 開(kāi)啟代理服務(wù)器,注意:這里的端口號(hào)寫(xiě)后端的端口號(hào)(方式一)
  /*//簡(jiǎn)單代理服務(wù)器
  devServer:{
    port:8080,//當(dāng)前前端服務(wù)器的端口號(hào)  不寫(xiě)默認(rèn)是8080
    proxy:"http://127.0.0.1:8081"http://代理服務(wù)器
  }*/
  /*配置多個(gè)代理*/
  devServer:{
    port:9527,//前端服務(wù)器端口號(hào)變成9527
    proxy:{
      //配置多個(gè)代理服務(wù)器格式:
      /*"/代理服務(wù)器的名字":{
        target:"代理服務(wù)器的地址",
        ws:true,//用于支持websocket
        changeOrigin: true,// 用于控制請(qǐng)求頭中的host值  代理欺騙 可以不寫(xiě)
        pathRewrite: {'^/代理服務(wù)器名字': ''} //重寫(xiě)路徑,把所有路徑中包含/代理服務(wù)器名的路徑替換為空字符串
      }*/
      "/myFirstProxy":{
     
        target:"http://127.0.0.1:8081", //代理服務(wù)器的地址
        ws:true,//用于支持websocket
        //就是把/myFirstProxy變成了空字符串
        pathRewrite:{"^/myFirstProxy":""}//重寫(xiě)路徑,把所有路徑中包含/代理服務(wù)器名的路徑替換為空字符串
      },
      "/mySecondProxy":{
        target:"http://127.0.0.1:8082", //代理服務(wù)器的地址
        ws:true,//用于支持websocket
        pathRewrite:{"^/mySecondProxy":""}
      }
    }
  }
})

發(fā)起請(qǐng)求:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-619029.html

<template>
    <div>
        <h1>歡迎訪問(wèn)員工管理頁(yè)面</h1>
        <button @click="sendRequestDemo()">訪問(wèn)后臺(tái)服務(wù)器</button>
        <button @click="sendRequestDemo2()">訪問(wèn)后臺(tái)服務(wù)器使用多代理方式</button>
    </div>
</template>

<script>
    import axios from "axios"
    export default {
        name: "EmpDemo",
        methods:{
            sendRequestDemo2(){
                //使用多代理服務(wù)器   根據(jù)代理服務(wù)器的名字 找具體的代理服務(wù)器發(fā)起代理請(qǐng)求
                axios({
                    method:"get",
                    //http://127.0.0.1:8081/vueweb001/demo1/methodDemo.action
                    url:"http://localhost:9527/myFirstProxy/vueweb001/demo1/methodDemo1.action"
                }).then(function(result){
                    alert(result.data)
                    console.log("myFirstProxy接收到的值:",result.data)
                });
            },
            sendRequestDemo(){
                //配置簡(jiǎn)單代理服務(wù)器 發(fā)起異步請(qǐng)求 訪問(wèn)后臺(tái)服務(wù)器
                axios({
                    method:"get",
                    配置簡(jiǎn)單代理服務(wù)器 請(qǐng)求資源時(shí)直接發(fā)給前端(8080)即可
                    //我們把請(qǐng)求發(fā)給前端服務(wù)器再由代理服務(wù)器幫我們轉(zhuǎn)發(fā)到 8081服務(wù)器
                    url:"http://localhost:8080/vueweb001/demo1/methodDemo1.action"
                }).then(function(result){
                    alert(result.data)
                    console.log(result.data)
                });
            }
        }
    }
</script>
<style scoped>
</style>

到了這里,關(guān)于vue解決跨域訪問(wèn)問(wèn)題(個(gè)人學(xué)習(xí)筆記六)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 前端筆記 ---- Chrome 瀏覽器不能跨域訪問(wèn)解決方案

    前端筆記 ---- Chrome 瀏覽器不能跨域訪問(wèn)解決方案

    1. 需求場(chǎng)景 Chrome 瀏覽器開(kāi)發(fā) H5 進(jìn)行接口聯(lián)調(diào)時(shí),瀏覽器不允許跨域訪問(wèn); 想通過(guò)瀏覽器設(shè)置,不使用代理等,瀏覽器可以進(jìn)行跨域訪問(wèn)。 2. 報(bào)錯(cuò)圖片 3. 解決方案 3.1 獲取Chrome 瀏覽器安裝位置 3.2 設(shè)置允許跨域和不驗(yàn)證證書(shū) 3.3 cmd 執(zhí)行設(shè)置命令 3.4 組成完整命令 3.5 cmd 運(yùn)行命

    2024年02月15日
    瀏覽(27)
  • nginx 配置訪問(wèn)地址和解決跨域問(wèn)題(反向代理)

    nginx 配置訪問(wèn)地址和解決跨域問(wèn)題(反向代理)

    1、配置訪問(wèn)地址(通過(guò)ip訪問(wèn)) 2、解決跨域問(wèn)題(反向代理) 問(wèn)題:前端頁(yè)面(端口30的ip)需要去訪問(wèn)一個(gè)43端口的后端接口,屬于跨域問(wèn)題;

    2024年04月09日
    瀏覽(23)
  • springcloud:解決阿里云OSS文件訪問(wèn)跨域問(wèn)題

    springcloud:解決阿里云OSS文件訪問(wèn)跨域問(wèn)題

    最近在高德地圖中引用阿里云OSS存儲(chǔ)的圖片時(shí),出現(xiàn)跨域訪問(wèn)問(wèn)題,特此記錄,以方便后續(xù)同學(xué)參考 1、在阿里云OSS后臺(tái)管理中,進(jìn)入權(quán)限管理,進(jìn)入跨域設(shè)置,添加跨域規(guī)則,設(shè)置來(lái)源為 * 圖片來(lái)源于https://blog.csdn.net/strugglerookie/article/details/119417281 2、至此配置完成后訪問(wèn)圖

    2024年02月01日
    瀏覽(16)
  • SpringBoot解決前后端分離跨域問(wèn)題:狀態(tài)碼403拒絕訪問(wèn)

    SpringBoot解決前后端分離跨域問(wèn)題:狀態(tài)碼403拒絕訪問(wèn)

    最近在寫(xiě)和同學(xué)一起做一個(gè)前后端分離的項(xiàng)目,今日開(kāi)始對(duì)接口準(zhǔn)備進(jìn)行 登錄注冊(cè) 的時(shí)候發(fā)現(xiàn)前端在發(fā)起請(qǐng)求后,抓包發(fā)現(xiàn)后端返回了一個(gè) 403 的錯(cuò)誤,解決了很久發(fā)現(xiàn)是【跨域問(wèn)題】,第一次遇到,便作此記錄? 在后端服務(wù)器啟動(dòng)后,前端頁(yè)面也起了起來(lái),然后點(diǎn)擊這個(gè)

    2024年02月03日
    瀏覽(16)
  • Vue-配置代理(解決跨域問(wèn)題)

    Vue-配置代理(解決跨域問(wèn)題)

    現(xiàn)在解決跨域主要有兩種方式是CORS和Jsonp,但是在開(kāi)發(fā)中用的比較多的是配置一個(gè)代理服務(wù)器。 ? 上面那個(gè)圖,左邊是客戶端所處位置,中間是代理服務(wù)器,要注意,紅色框是客戶所處位置,右邊藍(lán)色框是5000服務(wù)器,中間的粉色框因?yàn)槭欠?wù)器和藍(lán)色框服務(wù)器 之間進(jìn)行數(shù)據(jù)

    2024年02月05日
    瀏覽(23)
  • Vue中如何解決跨域問(wèn)題

    ? 跨域報(bào)錯(cuò)是前端開(kāi)發(fā)中非常經(jīng)典的一個(gè)錯(cuò)誤,報(bào)錯(cuò)如下 ?Access to XMLHttpRequest at \\\'......\\\' from origin? ?\\\'......\\\' has been blocked by CORS policy:? ?No \\\'Access-Control-Allow-Origin\\\' header is present on the requested resource. 跨域錯(cuò)誤源自于瀏覽器的同源策略 ,想要解決跨域首先要知道什么是同源策略?

    2023年04月08日
    瀏覽(19)
  • vue2跨域問(wèn)題解決[前端方法]

    前端項(xiàng)目中常見(jiàn)的跨域報(bào)錯(cuò)如下: Access to XMLHttpRequest at \\\'https://xxx.com/ms/\\\' from origin \\\'http://10.23.30.135:8080\\\' has been blocked by CORS policy: No \\\'Access-Control-Allow-Origin\\\' header is present on the requested resource. 針對(duì)這種跨域的報(bào)錯(cuò)我們可以通過(guò)后端設(shè)置 Access-Control-Allow-Origin 的header來(lái)解決,但一般

    2024年02月08日
    瀏覽(21)
  • Vue2怎么解決跨域問(wèn)題

    Vue2怎么解決跨域問(wèn)題

    1.跨域報(bào)錯(cuò): 項(xiàng)目目錄: ?第一步:在vue項(xiàng)目中的跟目錄下創(chuàng)建一個(gè) vue.config.js ,文件名是固定的,名字不一樣會(huì)報(bào)錯(cuò),如果有這個(gè)文件就不用新建 第二步: 在vue.config.js里邊直接復(fù)制粘貼下面這串代碼: 粘貼后,vue.config.js代碼如下: 第三步:如果你使用的是axios來(lái)請(qǐng)求數(shù)據(jù)

    2024年02月12日
    瀏覽(23)
  • vue項(xiàng)目跨域問(wèn)題(圖片跨域)devServer.proxy代理失效時(shí),nginx反向代理解決跨域問(wèn)題

    vue項(xiàng)目跨域問(wèn)題(圖片跨域)devServer.proxy代理失效時(shí),nginx反向代理解決跨域問(wèn)題

    ? 本篇文章主要記錄個(gè)人在公司項(xiàng)目開(kāi)發(fā)中所遇問(wèn)題,主要內(nèi)容:在vue項(xiàng)目的開(kāi)發(fā)中圖片所存的服務(wù)器/端口號(hào)和項(xiàng)目所在的服務(wù)器/端口號(hào)不同,出現(xiàn)了跨域問(wèn)題的保錯(cuò)。 ? 如果文章有歧義,請(qǐng)各位大佬指出,避免誤導(dǎo)更多的人!! Bug起因 ? 在vue項(xiàng)目的開(kāi)發(fā)中圖片所存的

    2024年02月15日
    瀏覽(28)
  • 解決SpringBoot和前端Vue的跨域問(wèn)題

    解決SpringBoot和前端Vue的跨域問(wèn)題

    一、為什么會(huì)出現(xiàn)跨域問(wèn)題?? ????????出于瀏覽器的同源策略限制。同源策略(Sameoriginpolicy)是一種約定,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,則瀏覽器的正常功能可能都會(huì)受到影響。可以說(shuō)Web是構(gòu)建在同源策略基礎(chǔ)之上的,瀏覽器只是針對(duì)同

    2024年02月04日
    瀏覽(18)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包