[
https://issues.apache.org/jira/browse/CB-874?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13290492#comment-13290492
]
Shazron Abdullah commented on CB-874:
-------------------------------------
Does this give you a clue?:
http://stackoverflow.com/questions/2662530/iphone-nshttpcookie-is-not-saved-across-app-restarts
Perhaps the server is sending the client a cookie that is session only.
Even if you go with what the SO answer is suggesting (saving to prop
dictionary), you need a trigger for this on app going to the background, and
resume when the app goes the foreground - and this will work even if the app is
force killed.
In any case I still am not definitely sure that iOS does this (no official doc)
-- this is only based on user reports. To definitely fix this you would have to
roll your own restore/backup mechanism - which is possible through a plugin --
but only if the "session only cookie" has been ruled out.
> AJAX session launch when iOS app killed/restarted
> -------------------------------------------------
>
> Key: CB-874
> URL: https://issues.apache.org/jira/browse/CB-874
> Project: Apache Cordova
> Issue Type: Bug
> Components: iOS
> Affects Versions: 1.7.0
> Environment: iOS 5.1, Cordova 1.7.0, iPad 3
> Reporter: Jason Shah
> Assignee: Shazron Abdullah
>
> 1. Launch the app
> 2. Login. This saves information in the Webkit's session (I believe)
> 3. Perform a $.ajax call to the server
> 4. Expected = Actual: server authenticates client with session and returns
> information
> 5. Now, tap home screen button, double-tap to kill the app, and relaunch
> 6. Perform the same $.ajax call to the server
> 7. Expected: server authenticates client with session and returns information
> 8. Actual: session information doesn't seem to be sent, so server returns
> HTTP code 401 Unauthorized
> My $.ajax requests are very simple:
> $.ajax({
> url: 'http://abc.com/info.json',
> type: 'GET',
> dataType: 'json',
> cache: false,
> success: function (forms) {
> // do stuff
> },
> error: function (response, textStatus) {
> if (response.status == 401) {
> // Handle unauthorized.
> // XXX This is the code path that is followed on second
> invocation.
> localStorage.clear();
> $.mobile.changePage( "#login" );
> } else {
> // Handle all other errors
> }
> },
> complete: function () {
> // Do stuff
> }
> });
> This code works fine in Chrome and Firefox. It fails in iOS.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira