vue提示跨域是什么原因,应该怎么解决?下面编程教程网小编给大家详细介绍一下!
1、什么是跨域
跨域是指浏览器不能执行其他网站的脚本。它是浏览器同源策略造成的,是浏览器对JS实施的安全限制。
跨域本质是浏览器基于同源策略的一种安全手段。
同源策略(Sameoriginpolicy),是一种约定,它是浏览器最核心也最基本的安全功能。
所谓同源(即指在同一个域)具有以下三个相同点:1、协议相同(protocol);2、主机相同(host);3、端口相同(port)。
反之非同源请求,也就是协议、端口、主机其中一项不相同的时候,这时候就会产生跨域。
2、如何解决跨域?
CORS (Cross-Origin Resource Sharing,跨域资源共享)是一个系统,它由一系列传输的HTTP头组成,这些HTTP头决定浏览器是否阻止前端 JavaScript 代码获取跨域请求的响应。
app.use(async (ctx, next)=> {
ctx.set('Access-Control-Allow-Origin', '*');
ctx.set('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');
ctx.set('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
if (ctx.method == 'OPTIONS') {
ctx.body = 200;
} else {
await next();
}
})
代理(Proxy)也称网络代理,是一种特殊的网络服务,允许一个(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。
#vue.config.js
amodule.exports = {
devServer: {
host: '127.0.0.1',
port: 8084,
open: true,// vue项目启动时自动打开浏览器
proxy: {
'/api': { // '/api'是代理标识,用于告诉node,url前面是/api的就是使用代理的
target: "http://xxx.xxx.xx.xx:8080", //目标地址,一般是指后台服务器地址
changeOrigin: true, //是否跨域
pathRewrite: { // pathRewrite 的作用是把实际Request Url中的'/api'用""代替
'^/api': ""
}
}
}
}
}
axios.defaults.baseURL = '/api'
以上是编程学习网小编为您介绍的“vue提示跨域应该怎么解决”的全面内容,想了解更多关于 vuejs 内容,请继续关注编程基础学习网。
沃梦达教程
本文标题为:vue提示跨域应该怎么解决


猜你喜欢
- vue跳转后不记录历史记录的问题 2024-02-29
- ajax实现修改功能 2023-02-01
- 【vue】三种获取input值的写法 2023-10-08
- Bootstrap每天必学之标签与徽章 2024-02-25
- Vue使用vue-cli基于脚手架编写项目_自己编写一个vue基本_认识项目结构---vue工作笔记0019 2023-10-08
- html+ajax实现上传大文件功能 2023-02-14
- css清除浮动clearfix:after的用法详解(附完整代码) 2023-12-14
- CSS3中使用RGBA设置透明度的示例 2024-02-24
- 详解CSS布局中浮动问题的四种解决方案 2024-01-06
- js中的鼠标事件有哪些(用法示例学习进阶) 2023-11-30