新版vue-cli模板下本地開發(fā)環(huán)境使用node服務(wù)器跨域的方法
背景
我們都知道瀏覽器有一個(gè)既核心也最基本的安全功能,即同源策略。同源分別是:協(xié)議,域名,端口。如果瀏覽器訪問服務(wù)器不同源的話,就會(huì)訪問不到數(shù)據(jù)。那開發(fā)中常常訪問的服務(wù)器不同源,那么可以借助一個(gè)服務(wù)器當(dāng)做中介來訪問需要訪問的服務(wù)器從而獲得數(shù)據(jù)。因?yàn)橥床呗允菫g覽器的安全機(jī)制,而服務(wù)器之間是不受此限制的。之前vue-cli模板build文件夾下有dev-serve.js文件,可以在此文件中配置本地node服務(wù)器實(shí)現(xiàn)跨域,現(xiàn)在的模板下沒有此文件,那我們?cè)撊绾问褂胣ode跨域呢?不逼逼,上方法。
具體操作
1、在build文件夾下面新建一個(gè)dev-serve.js文件,其中添加代碼如下:
'use strict' const express = require('express') const axios = require('axios') module.exports = function () { let app = express() app.get('/api/getDiscList', (req, res) => { let url = '請(qǐng)求地址' axios.get(url, { headers: { //這里請(qǐng)求的是QQ音樂的接口,帶上下面參數(shù)是為了騙服務(wù)器是自己人 referer: 'https://c.y.qq.com/', host: 'c.y.qq.com' }, params: req.query }).then((response) => { res.json(response.data) }).catch((e) => { console.log(e) }) }) app.listen(3000) }
2、在build.js中引入并且運(yùn)行只需要在最上面添加 require('./dev-serve.js')()
當(dāng)我們npm run dev運(yùn)行項(xiàng)目的時(shí)候,node服務(wù)器就會(huì)啟動(dòng)自動(dòng)監(jiān)聽3000端口
3.本地發(fā)送ajax請(qǐng)求,就可以通過node服務(wù)器訪問到數(shù)據(jù),請(qǐng)求我使用的是axios。請(qǐng)求如下:
import axios from 'axios' function getDiscList() { const data = { //...請(qǐng)求參數(shù) } return axios.get('/api/getDiscList', { params: data }).then(res => { return Promise.resolve(res.data) }) }
請(qǐng)求到數(shù)據(jù)如下:
結(jié)語
如此就簡(jiǎn)單實(shí)現(xiàn)了本地node服務(wù)器跨域,在開發(fā)環(huán)境下是可以請(qǐng)求到數(shù)據(jù),但是npm run build 打包成靜態(tài)文件后就失效了。路還很長,還請(qǐng)各位不吝賜教。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue watch監(jiān)聽對(duì)象及對(duì)應(yīng)值的變化詳解
下面小編就為大家分享一篇vue watch監(jiān)聽對(duì)象及對(duì)應(yīng)值的變化詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-02-02vue中使用[provide/inject]實(shí)現(xiàn)頁面reload的方法
這篇文章主要介紹了在vue中使用[provide/inject]實(shí)現(xiàn)頁面reload的方法,文中給大家提到了在vue中實(shí)現(xiàn)頁面刷新不同的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09Vue3后臺(tái)管理系統(tǒng)之創(chuàng)建和配置項(xiàng)目
后臺(tái)管理系統(tǒng)是我們?nèi)粘i_發(fā)學(xué)習(xí)經(jīng)常遇到的一個(gè)項(xiàng)目,下面這篇文章主要給大家介紹了關(guān)于Vue3后臺(tái)管理系統(tǒng)之創(chuàng)建和配置項(xiàng)目的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09Vue項(xiàng)目部署上線全過程記錄(保姆級(jí)教程)
vue項(xiàng)目開發(fā)完畢后,我們需要將項(xiàng)目打包上線,同時(shí)我們希望可以在本地預(yù)覽生產(chǎn)環(huán)境項(xiàng)目,下面這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目部署上線的相關(guān)資料,需要的朋友可以參考下2023-03-03vue實(shí)現(xiàn)百度搜索下拉提示功能實(shí)例
這篇文章主要介紹了vue實(shí)現(xiàn)百度搜索下拉提示功能實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06vue實(shí)現(xiàn)對(duì)highlight-current-row方式整行選中后修改默認(rèn)背景顏色
這篇文章主要介紹了vue實(shí)現(xiàn)對(duì)highlight-current-row方式整行選中后修改默認(rèn)背景顏色方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11vue2項(xiàng)目實(shí)現(xiàn)自定義右鍵菜單,可添加圖標(biāo)、事件等方式
這篇文章主要介紹了vue2項(xiàng)目實(shí)現(xiàn)自定義右鍵菜單,可添加圖標(biāo)、事件等方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04使用ElementUI修改el-tabs標(biāo)簽頁組件樣式
這篇文章主要介紹了使用ElementUI修改el-tabs標(biāo)簽頁組件樣式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08