Sencha Touch和Cookies

时间:2013-03-04 08:40:22

标签: javascript sencha-touch cors

我有一个Sencha Touch 2应用程序。

目前我使用JsonP将身份验证信息发送到服务器API(POST),服务器使用Json对象进行响应(作为JsonP传递)。 服务器还发送Cookie

重新加载应用时,Cookie不会保留。

我需要在Sencha Touch App中维护cookie ...知道怎么做吗?

谢谢Simone

Ext.data.JsonP.request({
    url: AshtonConfigurations.logOn,
    callbackKey: 'callback',
    method: 'POST',
    //-----------------
    withCredentials: true,
    useDefaultXhrHeader: false,
    //-----------------
    params: {
        UserName: username,
        Password: password,
        RememberMe: 'true',
        DeviceTokenNotification: pushIdToken
    },

1 个答案:

答案 0 :(得分:2)

由于JsonP使用JS嵌入式标记从远程URL获取数据,因此它不支持POST。出于同样的原因,HTTP标头和Cookie不起作用。

阅读本文以获取更多信息:http://docs.sencha.com/touch/2-1/#!/api/Ext.data.proxy.JsonP

如果您想交换cookie,您必须使用Ajax代理与启用了CORS的服务器通信。

仅供参考,桌面浏览器的安全策略与捆绑应用程序的webview不同,因此一旦构建应用程序,AJAX就可以与远程服务器一起使用。如果你想这样做,你必须通过这个讨论如何进行开发的线程

How to use json proxy to access remote services during development

有人建议使用GET请求进行更新,我不建议这样做。