2015-10-12 5 views
1

В настоящее время я пытаюсь настроить запрос POST для API REST (Cloudsight) с базовой авторизацией. Мой код до сих пор:Javascript Authorization 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);

Когда я пытаюсь запустить его, я получаю сообщение об ошибке: неперехваченным SyntaxError: Не удалось выполнить «setRequestHeader» на «XMLHttpRequest»: «Authorization:» не допустимое имя поля заголовка HTTP.

Кто-нибудь знает, что не так с кодом? Я очень новичок в Javascript и API, но очень ценю ответ. (Вот ссылка на документацию Cloudsight, если это помогает: https://cloudsight.readme.io Я просмотрел ее и попытался найти другие примеры JavaScript-заголовков авторизации HTTP без успеха.)

+0

У вас есть ':' в конце 'Authorization:', удалите это и снова проверьте. –

ответ

4

При поставке заголовков вам не нужен :. Снимите их с:

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

Запрос теперь передается, но возвращает другую ошибку, с которой вам приходится обращаться с вашей стороны. Думаю, это не проблема.

Это касается каждого заголовка, а не только для Authorization. Надеюсь, это решит вашу проблему.

+0

Спасибо. Это действительно спасло мой день! –