2016-02-08 2 views
0

enter image description hereУгловые заголовки Web API

Я пытаюсь добавить заголовки X-APIKeys с каждым апи вызова, но у них есть только примеры в завиток. Я пробовал:

var accessKey = "gdgfdgdfgdgdgfdgdfgfdgfdgdgh"; 
var secretKey = "ggdgfdgdggtet565645654654654"; 
$http.get("/information",{ 
    headers:{ {"X-APIKeys": accessKey, secretKey}} 
    ) 

Я также попытался сделать перехватчик для конфигурации:

config.headers['X-ApiKeys'] = {accessKey, secretKey} 

Структура для X-APIKeys является то, что я думаю, что это вызывает у меня вопросы. Я представил картинку заголовков http, которые они ищут.

Полный заголовка запроса:

Accept:*/* 
    Accept-Encoding:gzip, deflate, sdch 
    Accept-Language:en-US,en;q=0.8 
    Access-Control-Request-Headers:accept, x-apikeys 
    Access-Control-Request-Method:GET 
    Connection:keep-alive 
    Host: 
    Origin:http://localhost:60531 
    Referer:http://localhost:60531/ 
    User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.103 Safari/537.36 

Вот запрос заголовок из пытающегося Томислав Например: enter image description here

ответ

1

Попробуйте это:

$http.get("/information",{ 
    headers: { 'X-ApiKeys': 'accessKey=' + accessKey+'; secretKey='+secretKey+';' }}) 
+0

Это не позволяет мне использовать метод 405. Когда я делаю всего $ http.get ("/ information"), он дает мне авторизацию 401. – Rethabile

+0

Я ошибся X-ApiKeys, теперь отредактировал мой ответ. Можете ли вы дать нам заголовок запроса после вызова api, попробуйте инструмент google chrome dev для этого. – Tomislav

+0

Код состояния: 405 метод не допускается. Я добавил изображение заголовка запроса к вопросу, и я также изменил орфографию. – Rethabile

0

Вы должны сделать перехватчик, потому что есть возможно, некоторые переговоры по CORS продолжаются (ОПЦИИ?). Это гарантирует, что все запросы имеют заголовок. Конечно, если только запрос к определенному хосту должен иметь заголовок, вы должны иметь, если он решит включение или нет. Конфигурация - это просто сервис, если вы можете сохранить значения ключа api. Если вы не хотите делать это, просто скопируйте значения.

'use strict'; 

var app = angular.module('App'); 

app.factory('apiKeyInterceptor', [function (Config) { 

    var header = 'accessKey=' + Config.accessKey+'; secretKey='+ Config.secretKey+';' 
    return { 
     request: function (config) { 
     config.headers = config.headers || {}; 

     config.headers['X-ApiKeys'] = header; 
     return config; 
     } 
    }; 
    }]); 

var app = angular.module('App', []).config(function($httpProvider) { 
    $httpProvider.interceptors.push('apiKeyInterceptor'); 
} 

быть также осторожны и убедитесь, что они означают, что {} в локон команде буквально или в качестве заполнителя.

+0

Я добавил ваши предложения, но я считаю, что он все еще имеет проблему CORS. Я бы открыл еще один вопрос, но, похоже, это довольно часто. Единственное, что с самим собой заключается в том, что у меня нет доступа к серверу, что делает много их предложений неуместными в моем случае. Спасибо за обновление по вопросу, который определенно помогает при отправке заголовков по каждому запросу. – Rethabile

Смежные вопросы