2015-10-12 6 views
1

J'essaie actuellement de configurer une requête POST pour une API REST (Cloudsight) avec une autorisation de base. Mon code à ce jour est:Javascript Autorisation HTTP Headers

var xhr = new XMLHttpRequest(); 
 

 
xhr.open("POST", "http://api.cloudsightapi.com/image_requests", true); 
 
xhr.setRequestHeader("Authorization:", "CloudSight [key]"); 
 
xhr.setRequestHeader("Content-Type", "http://previews.123rf.com/images/valzann/valzann1412/valzann141200061/34262193-cigarette-end-on-a-white-background-Stock-Photo.jpg"); 
 

 
xhr.send(null); 
 
console.log(xhr.status); 
 
console.log(xhr.statusText);

Lorsque je tente de l'exécuter, je reçois l'erreur: Uncaught SyntaxError: Impossible d'exécuter 'setRequestHeader' sur 'XMLHttpRequest': 'Autorisation:' est pas un nom de champ d'en-tête HTTP valide.

Est-ce que quelqu'un sait ce qui ne va pas avec le code? Je suis très novice en Javascript et en API, mais j'apprécierais beaucoup une réponse. (Voici le lien vers la documentation de Cloudsight si cela vous aide: https://cloudsight.readme.io J'ai regardé à travers et j'ai essayé de trouver d'autres exemples de Authorization HTTP Header Javascript sans succès.)

+0

Vous avez ':' à la fin de 'Authorization:', supprimez-le et testez-le à nouveau. –

Répondre

4

Vous n'avez pas besoin du : pour fournir des en-têtes. Supprimez-les de:

xhr.setRequestHeader("Authorization:", ... 

La requête passe maintenant mais renvoie une autre erreur, que vous devez gérer de votre part. Je suppose que ce ne sera pas un problème.

Cela vaut pour chaque en-tête, pas seulement pour Authorization. J'espère que cela résout votre problème.

+0

Merci. Cela a vraiment sauvé ma journée! –