首页IT科技vue的跨域(VUE跨域、常用解决跨域的方法)

vue的跨域(VUE跨域、常用解决跨域的方法)

时间2025-06-14 19:44:21分类IT科技浏览4935
导读:当我们遇到请求后台接口遇到 Access-Control-Allow-Origin 时,那说明跨域了。...

当我们遇到请求后台接口遇到 Access-Control-Allow-Origin 时             ,那说明跨域了               。

跨域是因为浏览器的同源策略所导致                     ,同源策略(Same origin policy)是一种约定        ,它是浏览器最核心也最基本的安全功能          ,同源是指:域名             、协议                     、端口相同

解决跨域常用方法:

一        、VUE2.0中常用proxy来解决跨域问题

1          、在vue.config.js中设置如下代码片段

module.exports = { dev: { // Paths assetsSubDirectory: static, assetsPublicPath: /, proxyTable: { // 配置跨域 /api:{ target:`http://www.baidu.com`, //请求后台接口 changeOrigin:true, // 允许跨域 pathRewrite:{ ^/api : // 重写请求 } } }, }

 2                    、创捷axioss实例时                    ,将baseUrl设置为 ‘/api’

const http = axios.create({ timeout: 1000 * 1000000, withCredentials: true, BASE_URL: /api headers: { Content-Type: application/json; charset=utf-8 } })

二            、JSONP解决跨域

Jsonp(JSON with Padding) 是 json 的一种"使用模式"            ,可以让网页从别的域名(网站)那获取资料       ,即跨域读取数据                     。

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <div id="textID"></div> <script type="text/javascript"> function text_jsonp(req){ // 创建script的标签 var script = document.createElement(script); // 拼接 url var url = req.url + ?callback= + req.callback.name; // 赋值url script.src = url; // 放入头部 document.getElementsByTagName(head)[0].appendChild(script); } </script> </body> </html>

 三       、CORS是跨域资源共享(Cross-Origin Resource Sharing)                   ,以 ajax 跨域请求资源                ,支持现代浏览器    ,IE支持10以上

在CORS请求                   ,头部信息中包含以下三个字段:

Access-Control-Allow-Origin: 该字段是必须的      。它的值要么是请求时Origin字段的值                   ,要么是一个*,表示接受任意域名的请求                ,

Access-Control-Allow-Credentials: 可选                      ,值为布尔值    ,表示是否允许发送Cookie           。默认情况下             ,Cookie不包括在CORS请求之中                      。设为true                     ,即表示服务器明确许可        ,Cookie可以包含在请求中          ,一起发给服务器         。这个值也只能设为true       。如果要发送Cookie                    ,Access-Control-Allow-Origin必须设置为必须指定明确的                   、与请求网页一致的域名

Access-Control-Expose-Headers:可选                       。CORS请求时            ,XMLHttpRequest对象的getResponseHeader()方法只能拿到6个基本字段:Cache-Control                、Content-Language    、Content-Type                   、Expires                   、Last-Modified、Pragma            。如果想拿到其他字段       ,就必须在Access-Control-Expose-Headers里面指定

详细讲解请查看阮大神的文章                   ,传送门附上:CORS详解

四                、iframe实现跨域

iframe(src){ //数组 if(Array.isArray(src)){ this.docs.visible = true; }else{ this.docs.visible = false; } this.link = src if(this.docs.visible == false){ if(this.$refs[ruleIframe] && this.$refs[ruleIframe].querySelector(iframe)){ this.$refs[ruleIframe].querySelector(iframe).remove() //删除自身 } var iframe = document.createElement(iframe); iframe.width = 100%; iframe.height = 100%; iframe.setAttribute(frameborder,0) iframe.src = src; this.append(iframe) } }, //创建元素 防止 获取不到 ruleIframe 递归 append(iframe){ if(this.$refs[ruleIframe]){ this.$refs[ruleIframe].appendChild(iframe); return } setTimeout(()=>{ this.append(iframe); },500) },

感谢各位看官 阅读~

希望能帮助到大家

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
命名管道和无名管道的区别(Go 语言入门 1-管道的特性及实现原理) 主机内存条排行榜2021(主机内存条哪些好一点?)