新版vue

网友投稿 282 2023-02-09


新版vue

背景

我们都知道浏览器有一个既核心也最基本的安全功能,即同源策略。同源分别是:协议,域名,端口。如果浏览器访问服务器不同源的话,就会访问不到数据。那开发中常常访问的服务器不同源,那么可以借助一个服务器当做中介来访问需要访问的服务器从而获得数据。因为同源策略是浏览器的安全机制,而服务器之间是不受此限制的。之前vue-cli模板build文件夹下有dev-serve.js文件,可以在此文件中配置本地node服务器实现跨域,现在的模板下没有此文件,那我们该如何使用node跨域呢?不逼逼,上方法。

具体操作

1、在http://build文件夹下面新建一个dev-serve.js文件,其中添加代码如下:

'use strict'

const express = require('express')

const axios = require('axios')

module.exports = functihttp://on () {

let app = express()

app.get('/http://api/getDiscList', (req, res) => {

let url = '请求地址'

axios.get(url, {

headers: {

//这里请求的是QQ音乐的接口,带上下面参数是为了骗服务器是自己人

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中引入并且运行只需要在最上面添加 require('./dev-serve.js')()

当我们npm run dev运行项目的时候,node服务器就会启动自动监听3000端口

3.本地发送ajax请求,就可以通过node服务器访问到数据,请求我使用的是axios。请求如下:

import axios from 'axios'

function getDiscList() {

const data = {

//...请求参数

}

return axios.get('/api/getDiscList', {

params: data

}).then(res => {

return Promise.resolve(res.data)

})

}

请求到数据如下:

结语

如此就简单实现了本地node服务器跨域,在开发环境下是可以请求到数据,但是npm run build 打包成静态文件后就失效了。路还很长,还请各位不吝赐教。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java调取创蓝253短信验证码的实现代码
下一篇:java 连接共享文件夹(java访问共享文件)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~