1

我的IE有点问题,我希望这个网站的最后一个......</p>

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

所以在密码表单的相同想法中,它们是使用 Ajax 提交的。在我请求之前,我将 cookie 'pageloaded' 设置为页面的 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 设置为第二个表单变量,第一个是忽略,依此类推……最后发送的表单在页面刷新时设置下一个变量(手动)。

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

谢谢你的帮助 ;)

编辑:我尝试先对执行 setcookie() 的 php 文件执行请求,然后对最终文件执行 ajax 请求,但问题仍然相同:/ 我将尝试使用会话,但我想知道 IE 有什么问题:/

4

1 回答 1

0

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

于 2013-01-19T13:18:35.283 回答