Hey Rob,
I think you will bang your head now, as I just did...
I also have it working just in this second... BUT: I just did some apache
config:
Header always set Access-Control-Allow-Headers
"Origin,X-Requested-With,Content-Type,Accept,Authorization,Accept-Language,Content-Language,Last-Event-ID,X-HTTP-Method-Override"
Header always set Access-Control-Allow-Methods "GET,POST,PUT,DELETE,OPTIONS"
Header always set Access-Control-Allow-Credentials "true"
Header always set Cache-Control "max-age=0"
I added the Headers for credentials and cache-control plus the
allow-headers entry for X-HTTP-Method-Override.
Don't know what exactly does the trick, but even the older Version of my
angular-app now works on my iPhone with iOS8...
Will do some more testing, but I think this was it....
Am Mittwoch, 4. Februar 2015 01:56:44 UTC+1 schrieb Rob Koberg:
>
> I have this working now, but I had to use jQuery.ajax and not angular's
> own. Here is what works:
>
>
> SessionCreator.$inject = ['$http', '$q', '$rootScope', '$timeout', 'ENV',
> 'User'];
> function SessionCreator($http, $q, $rootScope, $timeout, ENV, User) {
>
> var deferred = $q.defer();
>
> jQuery.ajax(ENV.apiEndPoint + '/user-init', {
>
> accepts: 'application/json',
> dataType: 'json',
> headers: {
> Accept: 'application/json',
> Authorization: User.getAuth()
> },
>
>
> success: function(data) {
>
> $rootScope.maintenance = false;
> User.init(data.user);
> $rootScope.totalReads = data.totalReads;
>
> if (data.maintenance) {
> $rootScope.maintenance = true;
> $rootScope.maintenanceMsg = data.content;
> }
>
> deferred.resolve();
> },
> error: function(jqXHR, status, errorThrown) {
> console.log('SessionCreator error jqXHR', jqXHR);
> console.log('SessionCreator error status', status);
> console.log('SessionCreator error errorThrown', errorThrown);
>
> User.init(data.user);
> $rootScope.totalReads = data.totalReads;
> if (data.maintenance) {
> $rootScope.maintenance = true;
> $rootScope.maintenanceMsg = data.content;
> }
> jQuery('.loader-wrap').fadeOut();
> $timeout(function() {});
>
> }
> });
>
> return deferred.promise;
> }
>
>
> This does not work:
>
>
> SessionCreator.$inject = ['$http', '$q', '$rootScope', '$timeout', 'ENV',
> 'User'];
> function SessionCreator($http, $q, $rootScope, $timeout, ENV, User) {
>
> var deferred = $q.defer();
>
> // used text here to try and avoid preflight request. Didn't work.
> $http
> .get(ENV.apiEndPoint + '/user-init',
> {
> responseType: 'text',
> headers: {
> Accept: 'text/plain'
> }
> }
> )
> .success(function(data) {
> $rootScope.maintenance = false;
> User.init(data.user);
> $rootScope.totalReads = data.totalReads;
>
> if (data.maintenance) {
> $rootScope.maintenance = true;
> $rootScope.maintenanceMsg = data.content;
> }
>
> deferred.resolve();
> })
> .error(function(data, status, headers, config) {
> console.log('SessionCreator error data', data);
> console.log('SessionCreator error status', status);
> console.log('SessionCreator error headers', headers);
> console.log('SessionCreator error config', config);
>
> User.init(data.user);
> $rootScope.totalReads = data.totalReads;
> if (data.maintenance) {
> $rootScope.maintenance = true;
> $rootScope.maintenanceMsg = data.content;
> }
> jQuery('.loader-wrap').fadeOut();
> $timeout(function() {});
>
> });
>
> return deferred.promise;
> }
>
>
--
You received this message because you are subscribed to the Google Groups
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.