Mam problemy z włączeniem CORS na moim serwerze w połączeniu z AngularJS. Używam kątowej 1.2.16 i to jest mój serwer config:Żądanie niestandardowego nagłówka AngularJS CORS
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "Content-Type, X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Date, X-Api-Version, X-File-Name, Authorization"
Header set Access-Control-Allow-Methods "POST, GET, PUT, DELETE, OPTIONS"
Header set Access-Control-Allow-Credentials "true"
mogę użyć następującego wniosku:
$http.post(configuration.authUrl, {username: 'username', password: 'password'})
.success(function (data) {
$cookieStore.put(configuration.sessionName, {
token: data.authenticationToken,
user: data.user
});
})
.error(function() {}));
ponieważ wniosek ten nie korzysta z niestandardowego nagłówka.
Kiedy potem spróbować poprosić następujące: Balance.get()
z równowagi bytu:
angular.module('portalApp')
.factory('Balance', ['$resource', 'Auth', 'configuration', function ($resource, Auth, configuration) {
return $resource(configuration.balanceUrl, {}, {
get: {
method: 'GET',
isArray: false,
headers: {
Authorization: Auth.getAuthToken()
}
}
});
}]);
dostaję 401 Unauthorized
na balanceUrl.
w config Włożyłem:
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
Próbowałem nawet wprowadzenie $http.defaults.headers.common.Authorization = Auth.getAuthToken();
przed $resource
w fabryce Resource Balance
ale to nie pomogło.
Nagłówki wysyłane na żądanie preflight OPTIONS
nie zawierają nagłówka Authorization
, niezależnie od używanej metody. Są to nagłówki żądań żądania preflight OPTIONS
.
OPTIONS /api/v1.0/user/orders HTTP/1.1
Host: host
Connection: keep-alive
Cache-Control: no-cache
Access-Control-Request-Method: GET
Pragma: no-cache
Origin: origin
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36
Access-Control-Request-Headers: accept, authorization
Accept: */*
Referer: referer
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Wszelkie sugestie?
Tak, nie możesz, http: // stackoverflow.com/a/19744754/101662 – Oliver