跨域

1、什么是跨域?

跨域是浏览器为了安全而做出的限制策略。浏览器请求必须遵循同源策略:同端口、同域名、同协议。有时候我们发送请求会碰到接口不允许请求,可能就是遇到的跨域问题

2、如何解决跨域?

跨域的常见三种方法:(以vue为实列)


1、cors跨域

服务端设置,前端直接调用,后台允许前端某个站点进行访问

在封装的ajax中加入以下代码

Vue.http.options.credentials =true

2、jsonp跨域

首先安装jsonp

使用jsonp去请求

列如:

this.$http.jsonp('http://www.demo2.com:8080/login', {

    params: {},

    jsonp: 'onBack'}).then((res) => {

    console.log(res);

})

3、接口代理跨域,实现本地开发环境下的转化

内部会通过node去转发别人的服务

使用接口代理也就是代理他的地址,后面的请求地址就类似于我们查找文件的路径

当我们访问下面这个地址时候

https://www.jianshu.com/writer/notebooks/

在vue.connfig.js中

module.exports = {

  devServer:{

host:'localhost',

port:8080,

    proxy:{

'/writer':{

target:'https://www.jianshu.com',

changeOrigin:true,

        pathRewrite:{//转发地址,因为我们接口有很多比如/a、/b、/c这时候我们不可能写很多请求,可以写一个虚拟的接口,当访问到/writer会转发到/api中

'/api':' '

        }

      }

    }

  }

}

请求:

leturl ="writer/notebooks/";

    jsonp(url,(err,res)=>{

letresult = res;

this.data = result;

    })

  }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文地址:原文地址 什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。 广义...
    C_Y大渔阅读 1,265评论 1 13
  • 什么是跨域? 2.) 资源嵌入:、、、等dom标签,还有样式中background:url()、@font-fac...
    电影里的梦i阅读 2,389评论 0 5
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 126,092评论 2 7
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,111评论 0 4