以前对于跨域,一直很模糊,遇到的也不知道为什么,怎么去解决?于是自己研究了一下,怎么去解决这个问题!
01:为什么产什么跨域?
跨域是由于浏览器的同源策略产生的,确定一点这个东西是有浏览器产生的,和后端没有什么多大关系。
02:怎么解决?
既然是浏览器产生的,是不是可以绕过浏览器,是不是就可以解决了
03:解决方案
I: 反向代理nginx
II:中间服务转发
III:后端设置允许跨域(现在流行和常用方式)
反向代理nginx
下载并安装ngix,解压,其中默认前端静态文件放置在html文件中(当然你可以创建新的文件夹,需要在,conf文件夹下的nginx.conf中修改配置)
修改配置文件conf下的nginx.conf
访问地址是 IP.com/路径
location / {
root html; // root静态文件所在的目录 html
index index.html index.htm; // 加载的文件index.html或者是index.htm
}
#代理地址(前端请求接口,通过接口中的字段/api匹配,代理到http://192.168.10.117:8152/api/login 上面)
location /api {
proxy_pass http://192.168.10.117:8152/api/login;
}
前端接口此时使用 /api/login,不要在添加上ip了
中间服务转发
这里使用的是node中间介,中间介设置允许跨域,然后前端去请求该node服务地址,node服务再去请求你的目标地址,然后node会去请求你的目标地址(红框是目标地址),然后将得到的结果,在返回给前端,则解决了跨域(前端请求的地址是node服务,不是目标,别弄错了)
后端设置允许跨域(现在流行和常用方式)
此处是模仿的后端使用的node,(你也可以php,java...),在后端设置允许的请求,请求方法,请求方式等等,此时前端则可以直接请求该服务地址,获取到数据
当然还有其他的方式,iframe等等,这里目前自己测试稿了一下,解决跨域问题!如有不对请大神纠正,多多交流



