ajax跨域方法

nginx url rewrite

在服务器端安装nginx服务,将H5前端的访问路径和java后端的访问路径放在一个域名下,由nginx根据url请求路径进行转发:

http://aaa.afubx.com/afbx-wap  ==afbx-wap

http://aaa.afubx.com/afbx-rest  ==>  afbx-rest

 

Nginx配置:

server {

        listen 80;

        server_name aaa.afubx.com;

 

        index index.html index.htm;

        location /afbx-rest {

                #proxy_redirect          off;

                proxy_set_header        Host            $host;

                proxy_set_header        X-Real-IP       $remote_addr;

                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

                proxy_pass http://192.168.0.202:18081;

        }

 

        location /afbx-wap/afbx-wap {

                index index.php index.html index.htm;

                rewrite  "/afbx-wap/(.*)" /$1;

        }   

           

 

        location /afbx-wap {

                #proxy_redirect          off;

                proxy_set_header        Host            $host;

                proxy_set_header        X-Real-IP       $remote_addr;

                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

                proxy_pass http://192.168.0.202:18083;

        }

}  

 

优点:通过同一域访问,不存在跨域问题。

缺点:需要安装配置nginx,并且存在nginx单点压力的隐患。

 

 

 

 

跨域资源共享CROS

服务端根据http请求头的Origin字段进行判断,设置允许访问的域名访问。

解决方法:

服务端拦截请求,通过HttpServletRequest.getHeader(“Origin”)进行判断,如果是白名单就设置HttpServletResponse.setHeader(“Access-Control-Allow-Origin”,”{来源域名}”);

Java代码:

List whiteList = new ArrayList();

whiteList.add(“”);

String filterDrive = “wap”;

HttpServletResponse res = (HttpServletResponse) message.get(AbstractHTTPDestination.HTTP_RESPONSE);

HttpServletRequest req = (HttpServletRequest) message.get(AbstractHTTPDestination.HTTP_REQUEST);

If(filterDrive.equas(req.getParameter(“drive”))){

String origin = req.getHeader("Origin");

If(whiteList.contains(origin)){

res.setHeader("Access-Control-Allow-Origin", origin);

}

}

优点:使用ajax直接跨域访问,服务端添加支持,对以前的代码无影响。

缺点:

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值