Reputation: 5485
May be this is a general issue, which can be available on internet, But what I got is here.
Adding a custom header to HTTP request using angular.js
So I followed the same, and changed the code to
Setting header
var config = {headers: {
'Authorization': 'XXXYYY token="xxxxxxxx", realm="dash-api"',
"X-Testing" : "testing"
}
};
The get request call:
return $http.get(api.host+'/agn/12/adv/1860/cam?status=1', config).then(function (response) {
return {
status:"success",
data:response.data.data.active
};
}, function (error) {
return {
status:"error",
data:error
}
});
As you can see the request are going in method type OPTIONS, and the Authorization
token is not set in the request.
Please help me in this issue, as I am struggling from two days.
Thanks a lot.
Upvotes: 6
Views: 10073
Reputation: 494
You are seeing a OPTIONS
request most probably because you are making a cross origin request (CORS). Firstly your server should support CORS (by responding to OPTIONS request with a Access-Control-Allow-Origin
header set in the response).
If you are making a authenticated cross origin request, you need to set withCredentials
to true
when making the request.
$http.get(url, { withCredentials: true })
Upvotes: 0
Reputation: 1133
I think if you take a look at the link you refer to, you are getting the same issue as the author and the author of that post did state that it was a CORS issue - the server he was communicating with didn't support CORS, he confirms this in his comment on his own post.
As for why you are getting an OPTIONS request, this is because CORS makes a "pre-flight" request to the server to establish if CORS is going to be supported, before it will make the actual request.
Upvotes: 1