解决跨域问题

目前很多网站都要求前后端分离,因此ajax或者一些前端框架的http请求就必然面临跨域访问的问题,下面上几种解决方式


1、前端处理

 如jquery的jsonp   

 jQuery(document).ready(function(){
        $.ajax({
            type : "GET",
            url : "http://www.b.com/server.php&action=getmsg&callback=?",
            dataType : "json",
            jsonp: 'callback',
            success : function(json){
                $('#msg_box').html(json.msg);
                return true;
            }
        });
    });
此种方式需要在url后面加上callback=?参数
或者一些前端框架如agular自带的,等等

2、服务端处理
     如java的springmvc加上注解
  @CrossOrigin(origins = "*", maxAge = 3600)
  但是这种方式只能解决get请求的方式,post请求需要继承过滤器,添加头文件如下
  public class PostFilter implements Filter {
    public void destroy() {
    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {

        HttpServletResponse response = (HttpServletResponse) resp;
        response.setHeader("Access-Control-Allow-Origin","*");
        response.setHeader("Access-Control-Allow-Methods","POST,GET,OPTIONS,DELETE");
        response.setHeader("Access-Control-Max-Age","3600");
        response.setHeader("Access-Control-Allow-Headers","Origin, X-Requested-With, Content-Type, Accept");
        response.setHeader("","");response.setHeader("","");
        chain.doFilter(req, resp);
    }

    public void init(FilterConfig config) throws ServletException {

    }

}
   php文件中添加头就可以了
  header('Access-Control-Allow-Origin:http://client.runoob.com');




   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值