违背同源策略就是跨域。
同源策略: 网页的url 和 该网页请求的url 的协议、域名、端口必须保持一致。
协议、域名、端口必须保持一致.
同源策略存在的原因: 保护用户隐私和防范网络攻击(https://editor.csdn.net/md?not_checkout=1&spm=1011.2415.3001.6217&articleId=132763789)
即如果网页请求的url 和 网页的url 的协议、域名、端口任意一项不同就是跨域。
跨域是请求发出去了,服务器接收并返回了结果,只是浏览器没有接收响应结果。

最常见的形式分上面三种情况分别解决
rel="noopener noreferrer" 属性进行解决window.open("https://www.example.com", "_blank", "rel=noopener,noreferrer");
这个属性指示浏览器不要在打开的新窗口中传递引用到原始页面,从而限制了对原始页面的访问,从而不会出现跨域问题。
GET请求跨域,所以jsonp请求很少用后端人员添加响应头response.setHeader('Access-Control-Allow-Origin','*');
浏览器一看到后端携带的响应头就不拦截数据了,就可以实现跨域请求。
造成的问题是任何人都可以向该后端要数据,是不安全的。
(可以通过使用浏览器的开发者工具来查看HTTP响应头部中是否包含Access-Control-Allow-Origin字段来判断该资源是否设置了Access-Control-Allow-Origin共跨域使用)
jsonp和CORS方法的使用详见:https://blog.csdn.net/mantou_riji/article/details/124767753?ydreferer=aHR0cHM6Ly9tcC5jc2RuLm5ldC9tcF9ibG9nL21hbmFnZS9hcnRpY2xlP3NwbT0xMDAxLjIxMDEuMzAwMS41NDQ4
协议名、主机名、端口号和前端页面的一模一样,这样前端访问该代理服务器就没有跨域问题了。该请求,获取数据,之后将数据返回给前端。
vue.config.js:module.exports = {
devServer: {
// 这里配置的是向哪台服务器发送请求
// (代理服务器的地址不用管他会自动配置)
proxy: '协议名://主机名:端口号'
}
}