Javascript 为所有传出请求设置自定义Http标头

Javascript 为所有传出请求设置自定义Http标头,javascript,cross-browser,http-headers,Javascript,Cross Browser,Http Headers,我正在进行一个项目,在该项目中,我需要根据localStorage中的值在所有请求上设置一个自定义http头。由于我的web应用程序必须从客户端获取值,因此我正在努力解决如何确保从用户发送的每个Http请求都包含此头 一旦在请求中设置了头,就会使用servlet过滤器将其传播到响应。过滤器检查请求中的头并重定向到初始化页面,我可以使用该页面获取localStorage值并设置所需的任何侦听器 public void doFilter( @NotNull final ServletRequest

我正在进行一个项目,在该项目中,我需要根据localStorage中的值在所有请求上设置一个自定义http头。由于我的web应用程序必须从客户端获取值,因此我正在努力解决如何确保从用户发送的每个Http请求都包含此头

一旦在请求中设置了头,就会使用servlet过滤器将其传播到响应。过滤器检查请求中的头并重定向到初始化页面,我可以使用该页面获取localStorage值并设置所需的任何侦听器

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组件