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提示跨域应该怎么解决
基础教程推荐
猜你喜欢
- 锋利的jQuery 要点归纳(三) jQuery中的事件和动画(下:动画篇) 2024-04-07
- Json按某个键的值进行排序 2024-02-07
- Vue3.2中语法糖的基本使用方法? 2025-01-18
- vuejs如何console.log打印div中的内容并去除标签 2025-01-17
- 10 套华丽的CSS3 按钮小结 2024-03-30
- 5.超链接.html补 2023-10-28
- https://www.cnblogs.com/zhaoshujie/p/9594734.html 2023-10-29
- HTML基本语法和语义写法规则与实例 2022-11-13
- ASP.NET Core中快速构建PDF文档的步骤分享 2024-04-09
- css中子元素设置margin-top为什么影响了父元素 2023-12-20