1

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

Heroku 上的 Rails 服务器是为 CORS(跨域 ajax 请求)设置的。Access-Control-Allow-Credentials = True 和方法 = 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 的原因的帮助。IE。执行 document.cookie,在获得“set-cookie”结果后document.cookie = ''

谢谢你的帮助。

4

1 回答 1

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 调用。

于 2012-07-24T11:58:16.233 回答