У меня есть простая сборка бэкенда node.js на Restify с реализованной авторизацией OAuth2 (плагин restify-oauth2).
У меня проблема с запросом токена. Когда я вызываю метод POST с моим REST-клиентом, все работает правильно, и я получаю access_token
и token_type
.
Проблема возникает, когда я пытаюсь сделать то же самое в своем внешнем приложении, созданном в Angular, используя Restangular. Он вызывает метод OPTIONS перед отправкой фактического POST, и сервер отвечает ошибкой:
XMLHttpRequest cannot load http://localhost:8080/token?grant_type=client_credentials.
Invalid HTTP status code 405
Вот мои настройки CORS на бэкэнде:
server.pre(
function crossOrigin(req,res,next){
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
res.header("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
return next();
}
);
server.use(restify.fullResponse());
И это вызов REST, используемый во внешнем интерфейсе:
Restangular.one('token').post(
null,
null,
{grant_type: "client_credentials"},
{Authorization: "Basic bXlsb2dpbjpteXBhc3M="}
)
Может ли кто-нибудь помочь мне понять, как заставить его работать?
server.options('*',function (req,res,next){...});
- person Kevin B   schedule 02.07.2015