[ 
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

        

Reply via email to