vue前端如何解决跨域问题,vue解决跨域问题用后端配合吗
跨域问题的出现是因为浏览器的同源策略。如果没有同源的策略,我们的浏览器会非常不安全,随时可能被攻击。今天,边肖通过这篇文章向您介绍vue,以处理跨域问题。有兴趣的朋友来看看吧。
当您发送网络请求时,会出现以下保存消息。恭喜穿越域。
已阻止从起点“XXXXXX”访问位于“XXXXX”的XMLHttpRequest
CORS政策:对飞行前请求的响应未通过访问控制检查:
请求的资源上没有“Access-Control-Allow-Origin”标头。
1.1什么是跨域呢?
跨域问题的产生是因为浏览器的同源策略。所谓同源:两个页面具有相同的协议、主机和端口号,这是浏览器的核心和基本功能。如果没有同源策略,我们的浏览器会很不安全,随时可能被攻击。
当协议名、域名、端口号不同时,就会出现跨域问题。
这里强调一点:发生了跨域,并不是请求没有发送出去,它是请求发送成功了,并且服务端也给你把数据返回了,但是浏览器为了安全性给拒绝了。
2.2如何解决跨域呢?
1.方法一
如果条件允许,可以和后端沟通。后端在响应时添加一个响应头,前端无需任何操作即可处理跨域。
2.方法二
Vue脚手架提供了一种非常简单的方法:
如果您使用的是cli3或以上版本,并且目录中没有配置文件,那么您需要在根目录中新建一个vue.config.js文件来添加您需要的配置信息。
模块.导出={
页数:{
索引:{
//入口
条目:“src/main.js”,
},
},
devServer: {
代理服务器:{
/api: {
目标:“需要请求的url”,
pathRewrite:{^/api:},
ws:没错,
更改来源:真
}
}
}
}
它会创建一个代理服务器从后端而不是浏览器请求数据,因为服务器和服务器之间不存在跨域的问题。
此代理服务器的协议域名端口号与您运行项目时的协议域名端口号相同。您可以在以下情况下请求数据
使用http://localhost:8080/api。当您在请求数据时添加/api,您将认识到您需要处理跨域。如果不添加,将访问项目根目录下的相应数据。
3.方法三
不能处理使用jsonp但只能处理get的请求,比如post put patch。
这篇关于vue处理跨域问题的文章到此为止。有关vue处理跨域问题的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。