Angularjs – Utilisation de $ http sur une URL HTTPS

J'essaie d'utiliser le service $ http sur une URL HTTPS avec le code suivant:

var request = $http.post('https://my.custom.url/webservice', privateAttributes.requestData); request.success(function(data, status) { }).error(function(data, status) { console.log('data -', data); console.log('status -', status); }); 

My.custom.url est sur un autre domaine que mon application angularJS, mais mon serveur web est bien configuré pour permettre la demande XHR de domaine multiple. Il est censé être un service web public.

Lorsque la demande est envoyée, la promesse est immédiatement rejetée, de sorte que la fonction d' error() est déclenchée. Les data sont undefined et le status est 0 .

Sur l'onglet réseau de mon débogueur dans Chrome, je peux voir une requête OPTIONS en attente correspondant à mon $http.post() .

À des fins de test, j'ai essayé de faire la même requête avec la méthode jQuery $.post() et cela a fonctionné sans problème. Je pense que je fais quelque chose de mal avec le service $http .

Notez que ce n'est pas un problème XSRF et si j'utilise la version HTTP de mon service Web, la demande est une réussite.

Merci de votre aide.

Vous devrez peut-être lui dire d'envoyer le cookie:

Dans votre configuration, DI $httpProvider , puis définissez withCredentials sur true :

 .config(function ($routeProvider, $httpProvider) { $httpProvider.defaults.withCredentials = true; //rest of route code 

Informations sur angularjs withCredentials: http://docs.angularjs.org/api/ng . $ Http

Quels liens vers l'article mozilla: https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS?redirectlocale=en-US&redirectslug=HTTP_access_control#section_5