Javascript 为所有传出请求设置自定义Http标头
我正在进行一个项目,在该项目中,我需要根据localStorage中的值在所有请求上设置一个自定义http头。由于我的web应用程序必须从客户端获取值,因此我正在努力解决如何确保从用户发送的每个Http请求都包含此头 一旦在请求中设置了头,就会使用servlet过滤器将其传播到响应。过滤器检查请求中的头并重定向到初始化页面,我可以使用该页面获取localStorage值并设置所需的任何侦听器Javascript 为所有传出请求设置自定义Http标头,javascript,cross-browser,http-headers,Javascript,Cross Browser,Http Headers,我正在进行一个项目,在该项目中,我需要根据localStorage中的值在所有请求上设置一个自定义http头。由于我的web应用程序必须从客户端获取值,因此我正在努力解决如何确保从用户发送的每个Http请求都包含此头 一旦在请求中设置了头,就会使用servlet过滤器将其传播到响应。过滤器检查请求中的头并重定向到初始化页面,我可以使用该页面获取localStorage值并设置所需的任何侦听器 public void doFilter( @NotNull final ServletRequest
public void doFilter( @NotNull final ServletRequest request,
@NotNull final ServletResponse response,
FilterChain filterChain ) throws IOException, ServletException {
final HttpServletRequest hsr = (HttpServletRequest) request;
final String value = hsr.getHeader("Custom-Header");
if( isNullOrEmpty(value) ) {
((HttpServletResponse) response).sendRedirect("./init.html");
} else {
((HttpServletResponse)response).setHeader("Custom-Header", value);
filterChain.doFilter(request, response);
}
}
因此,在客户端,如果需要,我应该在响应中使用头。我只是想不出一个干净的跨浏览器解决方案来确保在初始http请求之后所有传出的http请求都设置了这个自定义头
我喜欢MDN提供的基于观察者的解决方案:但我不能完全依赖其他浏览器不支持的XPCOM组件