您的位置:首页 > Web前端 > JavaScript

ajax跨域问题

2016-05-16 20:41 585 查看

什么是跨域?

当A向B发起一个请求时,A和B之间,ip,端口,请求协议这三者只要有一个不同,那么就是跨域。一般情况下跨域是无法正常访问的。那么有时候就是想要跨域,那么怎么办呢?

解决方案

使用JSONP(此处不具体说明)

使用过滤器,在返回的http中加上一个header,具体如下:

package com.webside.shiro.filter;

import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
* Created by Administrator on 2016/5/16.
*/
public class AccessFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {

}

@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse)servletResponse;
response.addHeader("Access-Control-Allow-Origin","*");
filterChain.doFilter(servletRequest,servletResponse);
}

@Override
public void destroy() {

}
}


上面代码中的*表示允许所有的目标来跨域访问。我们也可以用一个具体的域名来代替它,表示只有这个域名下的请求才允许跨域、

提示:记得在web.xml中配置这个filter
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ajax 解决方案 jsonp