我有一个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
},
答案 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请求进行更新,我不建议这样做。