加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营 > 正文

ajax请求添加自定义header参数代码

发布时间:2020-12-19 21:25:30 所属栏目:运营 来源:网络整理
导读:这篇文章首要先容了ajax哀求添加自界说header参数代码,具有很好的参考代价,但愿对各人有所辅佐。一路跟从小编过来看看吧

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @ClassName: CorsFilter
* @Description: TODO(跨域哀求过滤器)
* @author clm
* @date 2019年10月25日
*
*/
public class CorsFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
/*
* 跨域哀求头处事端设置:
* 1.Access-Control-Allow-Origin:配置应承跨域的设置, 相应头指定了该相应的资源是否被应承与给定的origin共享
* 2.Access-Control-Allow-Credentials:相应头暗示是否可以将对哀求的相应袒露给页面(cookie)。返回true则可以,其他值均不行以。
* 3.Access-Control-Allow-Headers:用于预检哀求中,列出了将会在正式哀求的 Access-Control-Request-Headers 字段中呈现的首部信息。(自界说哀求头)
* 4.Access-Control-Allow-Methods:在对 预检哀求的应答中明晰了客户端所要会见的资源应承行使的要领或要领列表。
*/

HttpServletRequest httpRequest = (HttpServletRequest) servletRequest;
HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
//配置应承多个域名应承跨域荟萃
String[] allowDomains = {"http://czt.casicloud.com", "http://czt.ming.com"};
Set<String> allowOrigins = new HashSet<String>(Arrays.asList(allowDomains));
String origin = httpRequest.getHeader("Origin");
if(allowOrigins.contains(origin)){
//配置应承跨域的设置:Access-Control-Allow-Origin: 相应头指定了该相应的资源是否被应承与给定的origin共享
httpResponse.setHeader("Access-Control-Allow-Origin", origin);
}
httpResponse.setHeader("Access-Control-Allow-Credentials", "true");
httpResponse.setHeader("Access-Control-Allow-Headers",
"Origin, X-Requested-With, Content-Type, Accept, access-token");
httpResponse.setHeader("Access-Control-Allow-Methods", "GET, PUT, DELETE, POST, OPTIONS");
if (httpRequest.getMethod().equalsIgnoreCase("OPTIONS")) {
httpResponse.setStatus(202);
httpResponse.getWriter().close();
return;
}
filterChain.doFilter(servletRequest, servletResponse);
}

@Override
public void destroy() {
}

@Override
public void init(FilterConfig filterConfig) throws ServletException {
}

}

web.xml中设置过滤器:

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读