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