跨域

一、跨域概念
  跨域是指浏览器不能执行其余网站的脚本。它是由浏览器的同源策略形成的,是浏览器对JavaScript实施的安全限制
  同源:协议、域名、端口都要同样,有一个不同就存在跨域
 
二、cors跨域
  特色:后端配置,开发、上线均不影响
  在后端设置以下请求信息
  Access-Control-Allow-Origin :  容许请求源    // *全部访问地址,也能够设置具体地址
  Access-Control-Allow-Methods:  容许请求方法   // get、post、put、delete、options
  Access-Control-Allow-Headers:  容许带的请求头  // 表示请求时必须携带的请求头
  跨域请求首先会发送options试探请求
 
三、nginx中间代理
  特色:能够前端配置,能够运维配置,能够后端配置,配置简单,性能高
  (1)下载nginx
  (2)修改配置文件:nginx/conf/nginx.conf
  找到带有proxy_pass的server对象进行修改
 
四、jsonp
  特色:利用script标签不跨域的特色,
  (1)前端发送jsonp,须要带上回调函数
  (2)后端返回数据,必须把数据写在回调里面
  (3)前端拿到返回值(实际上是一个回调函数,参数是数据),再执行这个函数
  示例:node.js
    后端:
      app.get( "/api/jsonp', function( req, res ){
        var  data  =  { name: "test" }
        data  =  JSON.stringify(data)
        var  callback  =  "handleresponse(" +  data  +  ")"
        res.send(callback)
      })
    前端:
      function  getJsonp(){
        $.ajax({
          url: "http://localhost:3000/api/jsonp",
          data: { name: "xxx},
          dataType: "jsonp",
          jsonpCallback: "handleresonse"
        })
      }
      function  handresponse(data){
        console.log(data)
      }
       getJsonp()
相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息