2015-07-29 3 views
0

J'utilise l'extension Chrome Postman pour générer du code pour les requêtes POST et GET avec les en-têtes appropriés, mais après des heures de travail, je vois que je vais avoir besoin d'aide. Cela fonctionne parfaitement dans Postman, mais le code Javascript qu'il fournit est en quelque sorte erroné.Ajax GET avec l'en-tête Authorization

Si je fais la demande sans l'en-tête d'authentification, j'obtiens un GET 401 - non autorisé.

Si je fais la demande avec l'en-tête d'authentification, j'obtiens une OPTIONS 401 - non autorisée. Est-ce que quelqu'un peut expliquer pourquoi j'obtiens une option 401 lorsque j'utilise l'en-tête d'autorisation correct? J'ai également essayé d'utiliser btoa(username + ":" + password) - même résultat.

Répondre

1

Le navigateur vous empêche de faire une demande inter-domaines pour vous protéger des failles de sécurité.
(Cela ne se produit pas postier, parce que postier est une extension du navigateur, et a donc différentes autorisations que d'une page Web standard.)

Il y a quelques façons de contourner cela: 1.
Si les deux domaines sont sous votre contrôle, puis faire usage de la Access-Control-Allow-Origin HTTP header
2. Utilisez jsonp pour faire l'appel

+0

Vous ne pouvez pas définir les en-têtes personnalisés avec JSONP. L'utilisation d'Access-Cointrol-Allow-Origin n'empêchera pas la demande d'OPTIONS. – Quentin

+0

Merci beaucoup gillyb! J'ai ajouté "dataType": "jsonp" et ça fonctionne parfaitement maintenant! Merci beaucoup pour votre aide :) – user3296337