Jquery 在ajax请求期间未看到ExtJS网格状态cookie
我有一个包含以下内容的ExtJS网格: //初始化状态管理器Jquery 在ajax请求期间未看到ExtJS网格状态cookie,jquery,ajax,cookies,extjs,Jquery,Ajax,Cookies,Extjs,我有一个包含以下内容的ExtJS网格: //初始化状态管理器 Ext.state.Manager.setProvider(new Ext.state.CookieProvider()); //设置状态id stateful:true, stateId:'Vehicle-grid', 我能够在一个普通的HTTP请求上获得cookie。 当我尝试发送jqueryajax请求时,虽然我没有看到cookie服务器端。 我看到的只是jsessionid 我错过了什么 如果有必要,我可以粘贴整
Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
//设置状态id
stateful:true,
stateId:'Vehicle-grid',
我能够在一个普通的HTTP请求上获得cookie。
当我尝试发送jqueryajax请求时,虽然我没有看到cookie服务器端。
我看到的只是jsessionid
我错过了什么
如果有必要,我可以粘贴整个代码,但我只是想知道我是否遗漏了一些关于这一切如何工作的基本信息
谢谢,
伊恩
PS-在后端,我有以下代码grails控制器:
def allCookies = request.cookies;
for (c in allCookies) {
println "\n"+c.name+"\n";
}
我只打印JSSessionID。您想用ExtJS发送ajax请求,而不是通过jQuery。jQuery不知道ExtJS的有状态变量/对象,因为它们是两个不同的javascript库,所以cookie的处理方式与您期望的不同。我假设您提到的正常HTTP请求是由ExtJS处理的,这就是您看到预期cookie行为的原因 下面是一个如何使用ExtJS触发ajax请求的示例:
// Basic request
Ext.Ajax.request({
url: 'foo.php',
success: someFn,
failure: otherFn,
headers: {
'my-header': 'foo'
},
params: { foo: 'bar' }
});
更多信息可以在中找到。看起来我已经知道了 我愚蠢地没有意识到cookie只是在网格上的某些事件被触发后才设置的,而不是在初始化时设置的,与常规请求和ajax请求无关
感谢您的帮助。感谢您的回复,但当我指的是常规HTTP请求时,我指的是正常提交表单并刷新页面,而不是AJAX。所以我不明白为什么使用ExtJS来进行AJAX调用或jQuery有什么关系。cookie应该创建并存储在客户端系统上,对吗?您是通过ExtJS还是html进行表单提交?您是否尝试使用ExtJS的ajax请求?最初我是通过html进行表单提交的。我想制作AJAX表单,所以我开始使用jQuery。我没有尝试过使用ExtJS。现在,当我提交表单时,我得到的cookie名称返回的是JSESSIONID。没问题,我很高兴您找到了解决方案。继续,并将您的解决方案标记为已接受的解决方案,以便有效地解决问题。