在Ajax请求之前设置Cookie但响应使用较旧的Cookie IE

时间:2013-01-19 12:20:35

标签: jquery ajax internet-explorer cookies jquery-cookie

我在IE上遇到了一些麻烦,我希望这个网站的最后一个......

所以,我正在使用Wordpress,我有几个受保护的帖子。 我必须使用的模板(由代理商选择)在同一页面中加载所有帖子,并且有数千张图片,这不是一个好主意。因此,当访问者点击其项目时,我选择使用ajax加载页面。

因此,对于密码表单的相同想法,它们是使用Ajax提交的。 在我提出要求之前,我设置了一个Cookie,并且已经加载了#39;到页面的id,知道在响应页面中显示哪个帖子(一个页面包含所有帖子,所以只想生成受保护的帖子)。

当我转到页面时,Ajax会发送一个post变量,但是由于wp-login.php(表单的操作页面)重定向到上一页,所以我不能使用表单,所以我丢失post变量。然后我有了使用cookie的想法!嗯,它适用于除IE之外的所有浏览器:/

var pageloaded = form.find( 'input[name="pageloaded"]' ).val();
$.cookie('wp_pageloaded', null);
$.cookie('wp_pageloaded',pageloaded, { path: '/' });
var permalink = form.attr('action');
var newurl = permalink;

$.ajax({
    type: 'post',
    headers: {
        "Cache-Control":"no-cache",
        "Expires": "Mon, 26 Jul 1997 05:00:00 GMT" },
    url:newurl,
    data:{
        post_password: post_password,
        pageloaded: pageloaded
    },
    success:function(data, textStatus, jqXHR){
        var container_loaded = $(data).find('#'+pageloaded+' .the-content');
        $(container).html($(container_loaded).html());
        var formNew = $(container).find('form');
        $(formNew).submit(function(event) {
            checkpassword(event);
        });
    }
});

IE的反应究竟是什么: 他存储了第一个表单的cookie,所以第一个请求没问题。 对于第二个请求,cookie仍然是第一个。

我重新加载页面,这次将cookie设置为第二个表单变量,第一个是忽略,依此类推......最后一个表单设置了页面刷新时的下一个变量(手动)。 / p>

看起来IE设置好cookie,但是在ajax请求中读取旧的:/

感谢您的帮助;)

编辑:我已经尝试首先在php文件上执行请求,执行setcookie(),然后在最终文件上执行ajax请求,但仍然是同样的问题:/我会尝试与会话,但我想知道IE的错误:/

1 个答案:

答案 0 :(得分:0)

好的,所以测试会话是一个了不起的想法! :P 你猜怎么着 ?要在IE的Ajax请求中激活cookie,您只需在请求文件的开头写入<? session_start();?>。我不知道为什么,但它确实有效:/