I am currently trying to set up a POST request to an REST API (Cloudsight) with basic authorization. My code so far is:
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);
When I try and run it I get the error:
Uncaught SyntaxError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': 'Authorization:' is not a valid HTTP header field name.
Does anyone know what is wrong with the code? I am very new to JavaScript and APIs but would very much appreciate an answer. (Here's the link to Cloudsight's documentation if it helps: https://cloudsight.readme.io I have looked through it and tried to find other Authorization HTTP Header JavaScript examples without success.)
You don't need the :
when supplying headers. Remove them from:
xhr.setRequestHeader("Authorization:", ...
The request now passes but returns some other error, which you have to handle on your part. I guess it wont be a problem.
This goes for every header, not only for Authorization
. Hope this resolves your problem.