我的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 有什么问题:/