Vue-cli集成axios請(qǐng)求出現(xiàn)CORS跨域問(wèn)題及解決
Vue-cli集成axios請(qǐng)求出現(xiàn)CORS跨域問(wèn)題
今天仍然在學(xué)習(xí)Vue,出現(xiàn)了一個(gè)我意料之中的問(wèn)題
請(qǐng)求跨域問(wèn)題
我想通過(guò)主機(jī)來(lái)訪問(wèn)豆瓣里面的json數(shù)據(jù)
首先按照python爬蟲(chóng)的思想,我掏了一個(gè)豆瓣json數(shù)據(jù)的url地址信息及參數(shù)
① 基本url: https://movie.douban.com/j/search_subjects
②請(qǐng)求參數(shù)如下:
- type:‘movie’,
- tag:‘熱門(mén)’,
- page_limit:50,
- page_start:0
二話(huà)不說(shuō)開(kāi)始用axios進(jìn)行數(shù)據(jù)請(qǐng)求,
那么如果沒(méi)有axiso,請(qǐng)先下載
npm i axios
App.Vue的代碼如下
<template>
<button @click="getData">axios獲取請(qǐng)求</button>
</template>
<script>
import axios from 'axios';
// 聯(lián)系網(wǎng)址:https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start=0&limit=20
export default {
methods: {
getData(){
axios.get('/ysj/j/search_subjects'
,{
params:{
type:'movie',
tag:'熱門(mén)',
page_limit:50,
page_start:0
}
}
)
.then(res => {
console.log('請(qǐng)求成功',res)
})
.catch(err => {
console.error('請(qǐng)求失敗',err);
})
}
},
}
</script>
<style>
</style>
同時(shí)在vue.config,js里面配置代理服務(wù)器

module.exports = {
pages:{
index:{
//程序的入口
entry:'src/main.js',
},
},
lintOnSave:false, //關(guān)閉語(yǔ)法檢查
// 開(kāi)啟一個(gè)Vue的代服務(wù)器,后面端口視自己請(qǐng)求的端口修改
// devServer: {
// proxy: 'https://movie.douban.com'
// }
/**
* 1、/ysj 是加到實(shí)際請(qǐng)求的端口后面
*
* 2、而在實(shí)際請(qǐng)求中,瀏覽器請(qǐng)求發(fā)給代理服務(wù)器
* ,代理服務(wù)器也會(huì)攜帶/ysj內(nèi)容,這樣子無(wú)法獲取數(shù)據(jù)
* ,所以用正則表達(dá)式將/ysj拿掉,也就是pathRewrite
*
* 3、ws是webSocket的簡(jiǎn)寫(xiě),默認(rèn)是true
*
* 4、changeOrigin為true代表當(dāng)代理服務(wù)器給目標(biāo)服務(wù)器發(fā)送請(qǐng)求時(shí)
* ,給出的與目標(biāo)服務(wù)器一致的端口號(hào), 防止目標(biāo)服務(wù)器攔截我的請(qǐng)求
*/
devServer: {
proxy: {
'/ysj': {
target: 'https://movie.douban.com',
pathRewrite:{'^/ysj':''},
// ws: true,
changeOrigin: true
},
}
}
}最后由于寫(xiě)了pathRewrite進(jìn)行了代理服務(wù)器到目標(biāo)服務(wù)器路徑的整理,請(qǐng)求成功了

總結(jié)
解決了跨域問(wèn)題!
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue封裝可復(fù)用組件confirm,并綁定在vue原型上的示例
今天小編就為大家分享一篇vue封裝可復(fù)用組件confirm,并綁定在vue原型上的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
Vite打包性能優(yōu)化之開(kāi)啟Gzip壓縮實(shí)踐過(guò)程
vue前端項(xiàng)目發(fā)布的時(shí)候,打包可實(shí)現(xiàn)gzip格式的壓縮,下面這篇文章主要給大家介紹了關(guān)于Vite打包性能優(yōu)化之開(kāi)啟Gzip壓縮的相關(guān)資料,需要的朋友可以參考下2022-12-12
使用vue-cli腳手架工具搭建vue-webpack項(xiàng)目
這篇文章主要介紹了使用vue-cli腳手架工具搭建vue-webpack項(xiàng)目,通過(guò)幾個(gè)默認(rèn)的步驟幫助你快速的構(gòu)建Vue.js項(xiàng)目。非常具有實(shí)用價(jià)值,需要的朋友可以參考下2019-01-01
Vue如何通過(guò)Vue.prototype定義原型屬性實(shí)現(xiàn)全局變量
在Vue.js開(kāi)發(fā)中,通過(guò)原型屬性為Vue實(shí)例添加全局變量是一種常見(jiàn)做法,使用$前綴命名,可以避免與組件內(nèi)部的數(shù)據(jù)、方法或計(jì)算屬性產(chǎn)生命名沖突,這種方式簡(jiǎn)單有效,確保了變量在所有Vue實(shí)例中的可用性,同時(shí)保持全局作用域的整潔2024-10-10
vue 詳情跳轉(zhuǎn)至列表頁(yè)實(shí)現(xiàn)列表頁(yè)緩存
這篇文章主要介紹了vue 詳情跳轉(zhuǎn)至列表頁(yè)實(shí)現(xiàn)列表頁(yè)緩存,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
使用el-upload實(shí)現(xiàn)文件上傳方式(包括預(yù)覽,下載)
該文章介紹了兩種文件上傳、預(yù)覽和下載的方法,分別是通過(guò)卡片形式和按鈕形式,卡片形式中的下載和預(yù)覽功能尚未完善,父組件使用了el-upload組件,可以實(shí)現(xiàn)新增、編輯和查看文件的功能2025-11-11
element-ui中的select下拉列表設(shè)置默認(rèn)值方法
今天小編就為大家分享一篇element-ui中的select下拉列表設(shè)置默認(rèn)值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08

