cors 跨域问题

什么是跨域

  比如:

    我们当前域名是baidu.com ,想去请求taobao.com的资源。就是跨域请求资源了

      注意:同个域名端口不同,也会存在跨域问题。

    如果当前域名是百度,访问百度就不存在跨域

解决方案

  1、后端修改响应头

vat app = express();
app2.get('/',function(req,res){
    //  设置 任意的域都可以访问
    res.header('Access-Control-Allow-Origin','*')
    res.sed('你好~')                

})
app.listen(91)  //91端口

    2、 jsonp

  前端通过引入,比如href src引入的文件、图片、js等都不会存在跨域问题,只有ajax请求会有跨域问题。

  jsonp就是基于这个原理来用的。

  

  服务端

vat app = express();
app2.get('/',function(req,res){
    //  获取前端传过来的回调函数
   var funcname = req.query.callbak
    // 返回前端的是funcname('你好~')
    res.sed(funcname +"('你好~')")                

})
app.listen(91)  //91端口

前端jsonp方式

 声明

<script>
  function f(data){
    alert(data)
  }
</script>

  引用调用

<script src="http://localhost:91?callback=f"></script>

 这个script 标签相当于后端传过来函数名并传入参数调用--f('你好') ,然后上面发现函数已经声明注册了,就会运行!

3、反向代理

  各种框架写配置文件就行了。。比如nginx反向代理,vue反向代理。。。

 
原文地址:https://www.cnblogs.com/zhuangdd/p/14699437.html