vue解决跨域

跨域:是浏览器的同源策略引起的,为什么游览器会给一个同源策略,是为了安全考虑,我们设想一下,如果我们随意就可以访问别的接口那是不是就乱套了
                那么什么是跨域呢: 如果 协议、端口、域名只要有一样不一样就是跨域   比如我们要请求一个接口   我们当前请求的地址和当前运行的地址不一样就是跨域
    小程序,服务器与服务器之间不存在跨域
    
    “https(协议):(//api-hmugo)括号之间的内容就是域名”端口号一般都给隐藏了
    跨域的解决方案:

一、服务端的代理:vue项目用的就是服务端的代理  

(1)、在vue的根目录下新建一个文件   vue.config.js

  (2)、在js文件里写上   module.exports={

                                        devServer:{//控制启动的服务命令

                                                proxy:{//代理

                             '/api':{   //看到请求路径中如果有/api这样的字段  会将这个字段自动转接到target

                                        target:'http://localhost:3000/',//目标源

                                        changeOrigin:true,//允许跨域了

                                        pathRewrite:{

                                                '/api':' '//路径重写

                                                }

                                                }

                                                 

                                           }

        }


                  二、jsonp  

                        出于安全考录,服务器不允许ajax跨域获取数据   但是我们可以动态创建一个script标签  使用标签的src属性来访问js文件的形式获取js脚本 这个js脚本中的内容是函数调用 该函数调用的参数是服务器返回的数据 如果想要获取这里的参数数据  就需要事先在页面中定义一个回调函数  再回调函数中处理服务器返回的数据   这就是解决跨域问题的jsonp原理
                  三、服务端设置不跨域

                       告诉我们跨域了:

当要解决内部的服务器不跨域的话  就可以给我们公司内部的后端说在服务器上添加这个响应头

res.setHeader('Access-Control-Allow-Origin' ,'*')  注:字符一定要是英文的

 


                  四、nainx反向代理  (回头自己再搜搜吧)嘿嘿嘿

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值