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

解決前端跨域的幾種方法

這篇具有很好參考價值的文章主要介紹了解決前端跨域的幾種方法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、跨域報錯

????????在我們實際開發(fā)過程中,都有遇到過跨域的問題,跨域報錯如下:

解決前端跨域的幾種方法

二、為什么會報跨域?

????????跨域的本質(zhì)是瀏覽器基于同源策略的一種安全手段,主要是考慮到用戶的信息安全。何為同源策略呢?同源策略是一種約定,它是瀏覽器最核心也最基本的安全功能。所謂同源(即指在同一個域)具有以下三個相同點:協(xié)議相同、域名相同、端口相同。

????????反之非同源請求,也就是協(xié)議、端口、主機(jī)其中一項不相同的時候,這時候就會產(chǎn)生跨域。跨域是瀏覽器的限制,攔截的是響應(yīng)而非請求。我們用抓包工具抓取接口數(shù)據(jù),可以看到接口已經(jīng)把數(shù)據(jù)返回來了,只是由于瀏覽器的限制我們獲取不到數(shù)據(jù)。另外,并不是所有的跨域都會有問題,只有ajax和fetch產(chǎn)生的跨域才會被瀏覽器限制。

三、如何解決跨域?

(1)JSONP

????????JSONP是一種比較古老的解決方案,這種方案沒有兼容性問題,基本都可以使用,但是它所解決的問題比較有限,且對服務(wù)端接口有一定的要求,只支持get請求,不支持post,請求回來的東西當(dāng)做js來執(zhí)行。

????????原理:JSONP本質(zhì)上使用的是script標(biāo)簽的src屬性,該標(biāo)簽有跨域請求資源的能力,且請求的資源類型是js腳本。也就是說,我們需要在服務(wù)器給返回一段js腳本,并且把要返回給前端的數(shù)據(jù)加入到這段js腳本中。在瀏覽器端執(zhí)行這段腳本,從而達(dá)到獲取數(shù)據(jù)的目的。

解決前端跨域的幾種方法

(2)CORS

????????CORS是 W3C 標(biāo)準(zhǔn),屬于跨源 ajax請求的根本解決方法。CORS 規(guī)范中,清楚定義了跨域存取控制的運作方式。首先,服務(wù)端需要在響應(yīng)頭中加上如Access-Control-Allow-Origin、Access-Control-Request-Method、Access-Control-Request-Headers 等設(shè)定,來限制服務(wù)器所能接受的來源、請求的方法、可攜帶的頭等等。

????????當(dāng)瀏覽器發(fā)送資源請求時,如果是簡單請求便會直接送出請求;若不符合前述條件,則會通過預(yù)檢請求,確認(rèn)是否可以通過服務(wù)器的限制,然后才會發(fā)送正式的請求。

解決前端跨域的幾種方法

????????簡單說,該方法只需要直接讓后端設(shè)置響應(yīng)頭,允許資源共享就ok了,前端不需要做額外修改。

(3)Proxy

????????瀏覽器是禁止跨域的,但是服務(wù)端不禁止。拿Vue項目說,在本地運行npm run dev等命令時實際上是用node運行了一個服務(wù)器,因此proxyTable實際上是將請求發(fā)給自己的服務(wù)器,再由服務(wù)器轉(zhuǎn)發(fā)給后臺服務(wù)器,做了一層代理,因此不會出現(xiàn)跨域問題。

解決前端跨域的幾種方法

????????Vue-cli腳手架, 就啟動了一個webpack開發(fā)服務(wù)器, 它就能做代理轉(zhuǎn)發(fā),我們只需要修改webpack開發(fā)服務(wù)器的配置即可。

Vue.config.js:

解決前端跨域的幾種方法

????????總結(jié)一下就是,在前端服務(wù)和后端接口服務(wù)之間 架設(shè)一個中間代理服務(wù),它的地址保持和前端服務(wù)一致,那么,代理服務(wù)和前端服務(wù)之間由于協(xié)議、域名、端口三者統(tǒng)一不存在跨域問題,可以直接發(fā)送請求;代理服務(wù)和后端服務(wù)之間由于并不經(jīng)過瀏覽器,沒有同源策略的限制,也可以直接發(fā)送請求。這樣,我們就可以通過中間這臺服務(wù)器做接口轉(zhuǎn)發(fā),在開發(fā)環(huán)境下解決跨域問題,看起來好像挺復(fù)雜,其實vue-cli已經(jīng)為我們內(nèi)置了該技術(shù),我們只需要按照要求配置一下即可。

當(dāng)然,解決跨域的方法不止這些,比如nginx反向代理等方式也可以解決跨域問題。大家可以結(jié)合實際采取最簡潔方便的方式。文章來源地址http://www.zghlxwxcb.cn/news/detail-484908.html

到了這里,關(guān)于解決前端跨域的幾種方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 探究Spring Boot 中實現(xiàn)跨域的幾種方式

    探究Spring Boot 中實現(xiàn)跨域的幾種方式

    在現(xiàn)代Web應(yīng)用中,由于安全性和隱私的考慮,瀏覽器限制了從一個域向另一個域發(fā)起的跨域HTTP請求。解決這個問題的一種常見方式是實現(xiàn)跨域資源共享(CORS)。Spring Boot提供了多種方式來處理跨域請求,本文將介紹其中的幾種方法。 Spring Boot提供了一個注解 @CrossOrigin ,可以

    2024年02月05日
    瀏覽(19)
  • 解決前端VUE前端框架報錯Error: error:0308010C:digital envelope routines::unsupported的幾種方法

    解決前端VUE前端框架報錯Error: error:0308010C:digital envelope routines::unsupported的幾種方法

    主要是因為 nodeJs V17 版本發(fā)布了 OpenSSL3.0 對算法和秘鑰大小增加了更為嚴(yán)格的限制,nodeJs v17 之前版本沒影響,但 V17 和之后版本會出現(xiàn)這個錯誤。 **方案1:**打開IDEA 終端,直接輸入 **方案2:**打開IDEA 終端,直接輸入(問題解決) **方案3:**卸載當(dāng)前版本,安裝合適的版本

    2024年02月04日
    瀏覽(30)
  • 【Java】Java中解決跨域問題的幾種方法(建議收藏)

    我們在開發(fā)過程中經(jīng)常會遇到前后端分離而導(dǎo)致的跨域問題,導(dǎo)致無法獲取返回結(jié)果??缬蚓拖穹蛛x前端和后端的一道鴻溝,君在這邊,她在那邊,兩兩不能往來. 定義 跨域(CORS)是指不同域名之間相互訪問??缬?,指的是瀏覽器不能執(zhí)行其他網(wǎng)站的腳本,它是由瀏覽器的同

    2024年02月11日
    瀏覽(27)
  • vue如何解決跨域的問題,有哪幾種方式?

    vue如何解決跨域的問題,有哪幾種方式?

    在使用axios發(fā)送請求之后,沒有得到返回的數(shù)據(jù),打開控制臺發(fā)現(xiàn)如下圖所示的報錯: 這是提示跨域了。所有使用JavaScript的瀏覽器都會支持同源策略。同源策略即指域名/協(xié)議/端口號相同。只要有一個不同,就會當(dāng)作跨域請求。? 解決方法為: 1. CORS 后端通過 CORS 解決跨域

    2024年02月08日
    瀏覽(94)
  • SpringBoot解決跨域的方法詳細(xì)教程

    Spring Boot提供了多種解決跨域問題的方法,以下是其中幾種常用的方法: 使用@CrossOrigin注解是一種簡單且快速的解決跨域問題的方法。在Spring Boot的Controller類或方法上添加@CrossOrigin注解,可以指定允許跨域訪問的源、方法、頭部等信息。 1. 在Controller類或方法上添加@CrossOrig

    2024年02月13日
    瀏覽(35)
  • Java跨域問題的幾種后端解決方式

    跨域指的是:瀏覽器不能執(zhí)行其他網(wǎng)站的腳本,從一個域名的網(wǎng)頁去請求另一個域名的資源時,域名、端口、協(xié)議任一不同,都是跨域。跨域是由瀏覽器的同源策略造成的,是瀏覽器施加的安全限制。a頁面想獲取b頁面資源,如果a、b頁面的協(xié)議、域名、端口、子域名不同,所

    2024年02月08日
    瀏覽(22)
  • 前端生成分享海報的幾種方法

    1,使用painter插件 ? ?適用于微信小程序及uniapp的小程序端 ①,引入插件painter ? ?克隆地址:https://gitcode.net/mirrors/Kujiale-Mobile/Painter ? ?下載的 painter 放到微信小程序的 components 目錄下 ②在json文件中引入 \\\"usingComponents\\\": { ????????\\\"painter\\\":\\\"/components/painter/painter\\\" }, 注:在u

    2024年02月21日
    瀏覽(25)
  • 前端展示 PDF 預(yù)覽的幾種方法

    前端展示 PDF 預(yù)覽的幾種方法

    一、js實現(xiàn)pdf預(yù)覽 HTML 內(nèi)聯(lián)框架元素 iframe 表示嵌套的 browsing context。它能夠?qū)⒘硪粋€ HTML 頁面嵌入到當(dāng)前頁面中。 HTML embed 元素將外部內(nèi)容嵌入文檔中的指定位置。此內(nèi)容由外部應(yīng)用程序或其他交互式內(nèi)容源(如瀏覽器插件)提供 HTML object 元素(或者稱作 HTML 嵌入對象元素)

    2024年02月09日
    瀏覽(32)
  • 前端開發(fā)中,定位bug的幾種常用方法

    前端開發(fā)中,定位bug的幾種常用方法

    目錄 第一章 前言 第二章 解決bug的方法 2.1 百度 2.2 有道翻譯 2.3?debugger 2.4 console.log 日志打印 2.5 請求體是否攜帶參數(shù) 2.6 注釋頁面渲染代碼 2.7 其他 第三章 尾聲 備注:該文章只是本人在工作/學(xué)習(xí)中常用的幾種方法,如果有不對大家“胃口”的地方,勿噴,可以在評論區(qū)提供

    2024年02月04日
    瀏覽(18)
  • 跨域的原因和解決

    跨域的原因和解決

    跨域問題源于瀏覽器的同源策略限制。 同源策略主要是限制cookie的訪問,在非同源的情況下,A網(wǎng)頁不能夠訪問B網(wǎng)頁, “同源” 即是 協(xié)議 + 域名 + 端口 同源的設(shè)計是為了防止CSRF(跨站請求偽造),舉一個例子來說就是A網(wǎng)站是釣魚網(wǎng)站,當(dāng)?shù)卿涖y行網(wǎng)址存錢賺錢后,保留了

    2024年02月10日
    瀏覽(92)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包