假设如下情景:
html部署在apache上,jsp(后台处理)部署在jboss上。就有可能存在ajax的跨域问题。
[jsp]:表示jboss上jsp实际目录名
[html]:表示apache上html实际目录名
[ip]:你的实际ip地址
[b]第一种情况:apache jboss 在同一台机器上。[/b]
即html url : http://[ip]:80/[html]
jboss url : http://[ip]:8080/[jsp]
这种情况ip相同,只是端口不同。此时的应用程序在IE下没有跨域问题。但是在Firefox、Chrome。。。下就会存在。
原因是端口不一,则会被视为不同域
[color=green][b]解决方法[/b][/color]:
修改uriworkermap.properties文件,增加一行
[b]第二种情况: apache jboss 在不同的机器上。[/b]
即html url : http://[ip1]:80/[html]
jboss url : http://[ip2]:8080/[jsp]
[color=green][b]这种情况下的解决方法是[/b][/color]:
修改httpd.conf文件
1. 开启proxy mod
2. 在httpd.conf文件末尾增加如下:
3.如果有问题,把最后一行ProxyPassReverse 开启
==================
重启apache
可用httpd -t 命令查看语法是否争取
html部署在apache上,jsp(后台处理)部署在jboss上。就有可能存在ajax的跨域问题。
[jsp]:表示jboss上jsp实际目录名
[html]:表示apache上html实际目录名
[ip]:你的实际ip地址
[b]第一种情况:apache jboss 在同一台机器上。[/b]
即html url : http://[ip]:80/[html]
jboss url : http://[ip]:8080/[jsp]
这种情况ip相同,只是端口不同。此时的应用程序在IE下没有跨域问题。但是在Firefox、Chrome。。。下就会存在。
原因是端口不一,则会被视为不同域
[color=green][b]解决方法[/b][/color]:
修改uriworkermap.properties文件,增加一行
/[jsp]|/*=loadbalancer
[b]第二种情况: apache jboss 在不同的机器上。[/b]
即html url : http://[ip1]:80/[html]
jboss url : http://[ip2]:8080/[jsp]
[color=green][b]这种情况下的解决方法是[/b][/color]:
修改httpd.conf文件
1. 开启proxy mod
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
2. 在httpd.conf文件末尾增加如下:
ProxyRequests on
ProxyPass /[jsp] http://[ip2]:8080/[jsp]
#ProxyPassReverse /[jsp] http://[ip2]:8080/[jsp]
3.如果有问题,把最后一行ProxyPassReverse 开启
==================
重启apache
可用httpd -t 命令查看语法是否争取