java 解决nginx代理的跨域访问问题
一、什么是跨域
跨域是浏览器对JavaScript同源策略的限制
二、什么情况下会产生跨域
| 域名不同 | wwww.baidu.com | www.jd.com |
| 域名相同,访问的端口不同 | wwww.baidu.com:8080 | wwww.baidu.com:8081 |
| 一级域名相同,二级域名不用 | map.baidu.com | pan.baidu.com |
三、为什么会产生跨域问题
跨域不一定都会有跨域问题,因为跨域问题是浏览器对于ajax请求的一种安全限制:一个页面发起的ajax请求,只能是与当前页域名相同的路径,这能有效的阻止跨站攻击。
因此:跨域问题 是针对ajax的一种限制。
四、如何解决跨域问题
1、在nginx下的nginx.conf文件中配置要访问的域名和端口号,比如:
server {
listen 80;
server_name aaaa.com;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://127.0.0.1:8888;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
server {
listen 80;
server_name bbbb.com;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://127.0.0.1:9999;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
在nginx的配置文件中配置了两个域名,aaaa.com和bbbb.com,分别通过8888和9999两个端口来访问它们,端口的域名都要是项目中使用的域名,不可随意取。
2、在hosts文件中把域名和对应的ip配置好,如:
127.0.0.1 aaaa.com
127.0.0.1 aaaa.com
这里配置的域名要和ngnix中配置的域名相同
3、在项目中定义一个过滤器,让数据可以进行跨域访问
@Configuration
public class LeyouCorsConfig { @Bean
public CorsFilter corsFilter(){
//初始化Cors配置对象
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowCredentials(true);//允许携带cookie
configuration.addAllowedOrigin("http://manage.leyou.com");//允许这个域名进行跨域访问
configuration.addAllowedHeader("*");//允许携带任何头信息
configuration.addAllowedMethod("*");//代表所有的请求方法:POST GET PUT Delete //初始化Cors配置源对象
UrlBasedCorsConfigurationSource configurationSource = new UrlBasedCorsConfigurationSource();
configurationSource.registerCorsConfiguration("/**", configuration);//所有路径都需要解决跨域路径访问问题 //返回CorsFilter
System.out.println("可以进行跨域操作了=============================");
return new CorsFilter(configurationSource); } }
java 解决nginx代理的跨域访问问题的更多相关文章
- nginx介绍(六) - 通过反向代理实现跨域访问
前言 跨域访问问题, 相信很多人都遇到过, 并且都用不同的办法去解决过. 方法有很多种, 不一一叙述了. 这里主要使用nginx反向代理来解决跨域问题. 啥是跨域 假如你是百度开发人员, 在百度页面去 ...
- web代理进行跨域访问
通过web代理进行跨域访问,http请求返回超时的问题定位 [现象] 在ajax通过web代理跨域访问时,http第一次登陆时正常,但是第二次再下发其他命令的时候总是返回 java.net.Soc ...
- 解决nginx发布网站跨目录访问
解决nginx发布网站跨目录访问(thinkphp5+lnmp) 到:usr/local/nginx/conf/vim fastcgi.cof 把最后一行加上井号#注释掉保存重启 restart 参考 ...
- 通过web代理进行跨域访问,http请求返回超时的问题定位
[现象] 在ajax通过web代理跨域访问时,http第一次登陆时正常,但是第二次再下发其他命令的时候总是返回 java.net.SocketTimeoutException: Read timed ...
- Vue之通过代理设置跨域访问
我们使用脚手架创建的项目,可以在config项目中看到
- nginx:支持跨域访问
在http节点中配置: #支持跨域访问 add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Header ...
- 解决Django本地接口不能跨域访问的问题
1.安装django-cors-headers模块: pip install django-cors-headers 2.插入Django的APP配置中: # 修改settings.py中的INSTA ...
- 用反向代理nginx proxy_pass配置解决ie8 ajax请求被拦截问题 ie8用nginx代理实现跨域请求访问 nginx405正向代理request_uri
最近调PC版网站ie8的兼容性,发现所有ajax请求还没到后端服务器就直接ajax error了 ie8发不出ajax请求,断点调试发现ajax全进入了error,提示“No transport” 我 ...
- 解决jquery ajax在跨域访问post请求的时候,ie9以下无效(包括ie9)的问题
最近在做项目的时候遇到一个问题,就是跨域请求ajax的时候ie9以下的浏览器不可以访问,直接执行error里面的代码,但是也不报错,就上网查了查,发现了一个很好用的方法,在这里记录一下,也希望可以帮到 ...
随机推荐
- [转帖]Kubernetes v1.17 版本解读 | 云原生生态周报 Vol. 31
Kubernetes v1.17 版本解读 | 云原生生态周报 Vol. 31 https://www.kubernetes.org.cn/6252.html 2019-12-13 11:59 ali ...
- MethodInvoker委托,跨线程访问
Invoke(new MethodInvoker(delegate { textBox1.Enabled = true; })); 上面是简单缩写,也可以写成 private void btnOK_C ...
- Windows服务的安装及配合定时器编写简单的程序
最近要实时统计一些数据,所以就用到了Windows服务及定时任务,在这里记录下. Windows Service简介: 一个Windows服务程序是在Windows操作系统下能完成特定功能的可执行的应 ...
- windows中Crontab的使用
一.jdk的安装 安装地址ttps://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 二 . ...
- 连接池未注册org.logicalcobwebs.proxool.ProxoolException: Attempt to refer to a unregistered pool by its alias 'XXX'
代码之前一直好好的,写了一个定时器后报错,本地测试为了立马能执行就用cron表达式* * * * * ?,为了只执行一次在最后面加上Thread.sleep(1000*3600*24)睡眠二十四小时从 ...
- Ansible--Ansible之Playbook
Ansible之Playbook Playbook介绍 playbook参考文档 Playbook与ad-hoc相比,是一种完全不同的运用ansible的方式,类似与saltstack的state状态 ...
- 【转载】C#通过Copy方法快速复制DataTable对象
C#中的Datatable数据变量的操作过程中,可以通过DataTable的Copy方法快速复制当前的DataTable变量到新对象中,复制数据包含当前DataTable的结构信息如列名,同时也包含当 ...
- 好用的随查工具Dash
1. 好用的随查工具Dash 1.1. mac版本推荐 推荐一个很好用的工具,名字就叫Dash,当然缺点就是只有英文版,中文版可能也有但更新肯定不如英文及时 可以自由下载各种文档,比如下面的这图,左侧 ...
- ssh工具推荐
FinalShell 看图就知道功能多强大了, 官网地址 http://www.hostbuf.com
- Mysql连接数过多、Mysql连接错误过多的问题处理
在使用Mysql的过程中,你总是会遇到这样那样的问题,每次去网上查找也相对比较麻烦,所以在此整理一下(以linux ubantu16 系统为例). ========================== ...