Here is the issue description as I have come to understand it
In an effort to give each application it's own unique feel, Apple did not implement a Basic Authorization popup in their UIWebView. Instead they provided delegate methods (such as didReceiveAuthenticationChallenge for NSURLConnection) for their connection classes so that each application could handle the auth challenge in their own way (as far as prompting the user and such). Since Cordova allows all web requests coming from UIWebView to pass through to the default loading system, and no implementation is given by Cordova to handle an auth challenge; when an auth challenge is given by the server, Cordova (at the JS level) is oblivious and thus the $.ajax or XHR request appears to hang.
Here is the solution that I would propose
The solution that I found was to have Cordova handle all of the http(s) requests. I created a class CDVURLConnection to handle connection and delegation of these requests. If an auth challenge is received, it will give the 401 back to the loading system (and thus the JS layer) and then the Cordova developer can decide what to do from there.
I have updated the project found here with the solution I propose to this issue.
If handling all http(s) requests seems too scary (though it's working fine for me for everything I've thrown at it), perhaps a flag could be added to the config.xml saying whether your app will use requests with Basic Auth and thus will need this functionality or not.
PS Again please note that this is .