Как установить значение в заголовке запроса Http

0

Я имею дело с запросом на перекрестный поиск для доступа к моим успокоительным API, поэтому я хочу задать поле "Авторизация" в заголовке HTTP-запроса для каждого запроса, но не собирается указывать в заголовке... так что вы делаете неправильно здесь?

Мой app.js

'use strict';

var app = angular.module('samepinch', [
    'ngResource',
    'ngCookies',
    'ui.router',
    'toaster',
    'ui.bootstrap',
    'oc.lazyLoad',
    'samepinch.controllers',
    'samepinch.directives',
    'samepinch.factory',
    'samepinch.services',

    // Added in v1.3
    'FBAngular',
    'Config',
    'samepinch.login',
    'samepinch.item',
    'samepinch.common'
]);

angular.module('samepinch.login',[]);
angular.module('samepinch.item',[]);
angular.module('samepinch.common',[])

app.run(function($http)
{
      $http.defaults.headers.common.Authorization = '';
    // Page Loading Overlay
    public_vars.$pageLoadingOverlay = jQuery('.page-loading-overlay');

    jQuery(window).load(function()
    {
        public_vars.$pageLoadingOverlay.addClass('loaded');
    })
});

Контроллер

angular.module('samepinch.login').controller('LoginController',['$scope','LoginService','$rootScope','$http',function($scope,LoginService,$rootScope,$http){

    $rootScope.isLoginPage        = true;
    $rootScope.isLightLoginPage   = false;
    $rootScope.isLockscreenPage   = false;
    $rootScope.isMainPage         = false;

    $scope.register = function(credentials){
        $http.defaults.headers.common.Authorization = 'dfdfdf';
        LoginService.post(credentials,function(success){

        },function(error){

        });
    }

}]);

Моя служба

'use strict';


angular.module('samepinch.login').factory('LoginService', ['$resource','$enviornment', function ($resource,$enviornment) {
    var url = $enviornment.backendurl;
     return $resource(url+'authenticate',{},{
         query: {
             method:'GET', 
             params:{itemId:''}, 
             isArray:true
         },
         post: {
             method:'POST',
             headers: {
                  'Authorization': 'Basic dGVzdDp0ZXN0',
                  'Content-Type': 'application/json'
            }
         },
         update: {
             method:'PUT', params: {itemId: '@entryId'}
         },
          remove: {
              method:'DELETE'
          }
     });
}]);

Мой запрос Http выглядит так:

Remote Address:127.0.0.1:8080
Request URL:http://localhost:8080/api/v1/authenticate
Request Method:OPTIONS
Status Code:401 Unauthorized
Request Headersview source
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:accept, authorization, content-type
Access-Control-Request-Method:POST
Cache-Control:no-cache
Connection:keep-alive
Host:localhost:8080
Origin:http://localhost:9006
Pragma:no-cache
Referer:http://localhost:9006/
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36
Response Headersview source
Access-Control-Allow-Methods:POST, GET, OPTIONS, DELETE,PUT
Access-Control-Allow-Origin:*
Access-Control-Max-Age:3600
Cache-Control:no-cache, no-store, max-age=0, must-revalidate
Content-Length:0
Date:Wed, 22 Jul 2015 07:52:15 GMT
Expires:0
Pragma:no-cache
Server:Apache-Coyote/1.1
X-Content-Type-Options:nosniff
X-Frame-Options:DENY
X-XSS-Protection:1; mode=block

Поэтому поле "Авторизация" не задано в заголовках. Пожалуйста, помогите мне, что мне не хватает здесь.

Теги:
http

1 ответ

1
Лучший ответ

Этот журнал предназначен для запроса OPTIONS

Request Method:OPTIONS

Сначала вам нужно настроить сервер для возврата 200 OK для вызова OPTIONS тогда вызов POST с соответствующими параметрами будет отправлен

Найдите инструкции здесь http://enable-cors.org/, как настроить CORS (включая запрос OPTIONS) в своей архитектуре

  • 0
    спасибо за быстрый ответ, не могли бы вы сказать мне, пожалуйста, одну вещь, у меня недостаточно знаний о запросе cors, вы имеете в виду, что я установил 200 ok для вызова OPTIONS с сервера без какой-либо аутентификации этого запроса?
  • 0
    Вы можете сделать это с помощью 200 ok или пройти аутентификацию по запросу OPTIONS, а если пользователь прошел аутентификацию, вернуть 200 OK чтобы можно было выполнить запрос POST.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню