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反向代理。。。