如何解决ie中iframe请求非跨域页面有时不带cookie?

127.0.0.1:8080/index.jsp中, cookie里含有登录信息.  页面中有:

`<iframe src="map.jsp"></iframe>`

但是这个获取map.jsp的请求有时带cookie有时不带, 导致因为没有登录信息跳转登录页. 

请问如何强制带上cookie?

 

尝试过网上说的添加`response.setHeader("P3P","CP=CAO PSA OUR IDC DSP COR ADM DEVi TAIi PSD IVAi IVDi CONi HIS IND CNT");`, 但似乎没用

 

有没有起作用打断点看啊,特别是在shiro或spring security权限认证框架下,以下代码若加载filter里面,则该filter必须在认证filter之前(例如在authc filter之前)。原因你懂的,你都准备执行认证filter了,你的加的那部分代码都还没执行,肯定不行啊!!!

 打断点,看filterChain链执行属性


    @Override
    public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain filterChain) throws IOException, ServletException {

response.setHeader("P3P","CP=CAO PSA OUR IDC DSP COR ADM DEVi TAIi PSD IVAi IVDi CONi HIS IND CNT");

 

网页看页面都有了,还是不行

可查看了filter的加载顺序,确定顺序没问题后,在filter里查询cookie是否存在

    @Override
    public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain filterChain) throws IOException, ServletException {

        HttpServletRequest req = (HttpServletRequest) request;
        System.out.println(req.getCookies());

 

 

@Bean
    public FilterRegistrationBean corsFilter() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
        filterRegistrationBean.setFilter(new CorsFilter());
        filterRegistrationBean.setEnabled(true);
        filterRegistrationBean.addUrlPatterns("/*");
        filterRegistrationBean.setOrder(1);
        return filterRegistrationBean;
    }


    @Bean
    public FilterRegistrationBean filterRegistrationBean() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
        filterRegistrationBean.setFilter(new DelegatingFilterProxy("shiroFilter"));
        filterRegistrationBean.addInitParameter("targetFilterLifecycle", "true");
        filterRegistrationBean.setEnabled(true);
        filterRegistrationBean.addUrlPatterns("/*");
        filterRegistrationBean.setOrder(10);
        return filterRegistrationBean;
    }