Cookie未保存在sencha touch 2应用程序中

时间:2012-07-23 16:23:06

标签: javascript cookies sencha-touch sencha-touch-2

在我的响应标头中收到带有有效“set-cookie”值的服务器响应后,应用程序不会保存cookie。

heroku上的Rails服务器设置为CORS(跨域ajax请求)。 Access-Control-Allow-Credentials = True,methods = POST,GET。

响应包含set-cookie的登录请求如下:

 Ext.Ajax.request({
            url: 'http://myurl/log_user_in.json',
            params: { username: user, password: pass, app_id: id },
            method: "POST" });

需要帮助解决应用程序无法保存cookie的原因。即。执行 在document.cookie

获取“set-cookie”结果后document.cookie = ''

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

在这里找到答案:https://stackoverflow.com/a/7189502/1106877

不幸的是,Sencha论坛答案几乎没有提供如何做到这一点的指导。 在Sencha Touch中,上述链接的等效解决方案是:

Ext.Ajax.request({
            url: 'http://myurl/log_user_in.json',
            params: { username: user, password: pass, app_id: id },
            withCredentials: true,
            useDefaultXhrHeader: false,
            method: "POST" });

它也适用于使用Ajax的商店代理。

确保withCredentials为true且useDefaultXhreader为false。这允许您的ajax请求使用cookie查找,设置和请求。当然,所有这些都假定您的服务器已设置为跨域Ajax调用。