vue 處理跨域問(wèn)題及解決方法小結(jié)
當(dāng)你在發(fā)送網(wǎng)絡(luò)請(qǐng)求的時(shí)候,出現(xiàn)以下保存信息,恭喜你跨域了
Access to XMLHttpRequest at 'XXXXX' from origin 'XXXXXX' has been blocked by
CORS policy: Response to preflight request doesn't pass access control check:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
1.1什么是跨域呢?
跨域問(wèn)題的出現(xiàn)是因?yàn)闉g覽器的同源策略問(wèn)題,所謂同源:就是兩個(gè)頁(yè)面具有相同的協(xié)議(protocol),主機(jī)(host)和端口號(hào)(port),它是瀏覽器最核心也是最基本的功能,如果沒(méi)有同源策略我們的瀏覽器將會(huì)十分的不安全,隨時(shí)都可能受到攻擊。
當(dāng),協(xié)議名,域名,端口號(hào),三者有一個(gè)不同都會(huì)發(fā)生跨域問(wèn)題
這里強(qiáng)調(diào)一點(diǎn):發(fā)生了跨域,并不是請(qǐng)求沒(méi)有發(fā)送出去,它是請(qǐng)求發(fā)送成功了,并且服務(wù)端也給你把數(shù)據(jù)返回了,但是瀏覽器為了安全性給拒絕了。
2.2如何解決跨域呢?
1.方法一
條件允許的話可以與后端交流,后端在回應(yīng)的時(shí)候加上響應(yīng)頭,前端不需要任何操作就可以處理跨域
2.方法二
vue腳手架提供了一個(gè)很簡(jiǎn)便的方法 :
如果你用的是cli3以上,目錄中沒(méi)有了配置文件,需要你自己在根目錄新建一個(gè)vue.config.js文件可以在里邊添加你需要的配置信息
module.exports={ pages: { index: { //入口 entry:"src/main.js", }, }, devServer: { proxy: { '/api': { target: '需要請(qǐng)求的url', pathRewrite:{'^/api':''}, ws: true, changeOrigin: true } } } }
它會(huì)創(chuàng)建一個(gè)代理服務(wù)器,代替瀏覽器去向后端請(qǐng)求數(shù)據(jù),因?yàn)榉?wù)端和服務(wù)端是不存在跨域問(wèn)題的。
這個(gè)代理服務(wù)器的 協(xié)議域名端口號(hào) 跟你運(yùn)行項(xiàng)目時(shí)候的 協(xié)議域名端口號(hào) 是一樣的 你可以在請(qǐng)求數(shù)據(jù)的時(shí)候
使用 http://localhost:8080/api 當(dāng)你在請(qǐng)求數(shù)據(jù)的時(shí)候加上/api 才會(huì)識(shí)別你需要處理跨域呢,不加就是訪問(wèn)項(xiàng)目的根目錄下的相應(yīng)數(shù)據(jù)
3.方法三
使用jsonp 但是只能處理get的請(qǐng)求 像post put patch 等都不能處理
到此這篇關(guān)于vue 處理跨域問(wèn)題的文章就介紹到這了,更多相關(guān)vue 處理跨域內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue2實(shí)現(xiàn)自適應(yīng)屏幕大小的兩種方法詳解
這篇文章主要為大家詳細(xì)介紹了Vue2實(shí)現(xiàn)自適應(yīng)屏幕大小的兩種方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03elementUI Tree 樹(shù)形控件的官方使用文檔
這篇文章主要介紹了elementUI Tree 樹(shù)形控件的官方使用文檔,用清晰的層級(jí)結(jié)構(gòu)展示信息,可展開(kāi)或折疊。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-04-04VUE登錄注冊(cè)頁(yè)面完整代碼(直接復(fù)制)
這篇文章主要給大家介紹了關(guān)于VUE登錄注冊(cè)頁(yè)面的相關(guān)資料,在Vue中可以使用組件來(lái)構(gòu)建登錄注冊(cè)頁(yè)面,文中通過(guò)圖文以及代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12vue2實(shí)現(xiàn)可復(fù)用的輪播圖carousel組件詳解
這篇文章主要為大家詳細(xì)介紹了vue2實(shí)現(xiàn)可復(fù)用的輪播圖carousel組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11elementUI樣式修改未生效問(wèn)題詳解(掛載到了body標(biāo)簽上)
vue+elementUI項(xiàng)目開(kāi)發(fā)中,經(jīng)常遇到修改elementUI組件樣式無(wú)效的問(wèn)題,這篇文章主要給大家介紹了關(guān)于elementUI樣式修改未生效問(wèn)題的相關(guān)資料,掛載到了body標(biāo)簽上,需要的朋友可以參考下2023-04-04