2015-09-04 69 views
0

我在角一個新手。我試圖通過基本身份驗證頭向服務器發送GET請求,但它不起作用。這裏是我的代碼,我無法設置基本身份驗證頭

///////////////My app.js/////////////// 
var myApp = angular.module('myApp', ['ngRoute', 'ui.bootstrap']); 

myApp.config(['$routeProvider', '$httpProvider', function($routeProvider, $httpProvider){ 
    $httpProvider.defaults.headers.common['Authorization'] = 'Basic YWRtaW46YWRtaW4='; 
    $routeProvider 
    .when('/', { 
     controller: 'UserController', 
     templateUrl: './app/views/homepage.html' 
    }) 
    .when('/users', { 
     controller: 'UserController', 
     templateUrl: './app/views/userlist.html' 
    }); 
}]); 

///////////////My userService.js/////////////// 
myApp.factory('UserService', function($http){ 
var factory = {}; 
var urlBase = 'http://xxx.xxx.xxx.xxx/api'; 
    factory.getUsers = function(){ 
     return $http.get(urlBase+'/getusers'); 
    }; 
    return factory; 
}); 

當我打電話從控制器的服務,有2個錯誤在瀏覽器的控制檯中顯示,

雖然我通過POSTMAN應用程序發送請求,但它正常工作。

感謝您的幫助。

回答

0

這是CORS問題。你的服務器應該設置一些基本的CORS過濾器。在這方面已經有很多問題和回答。

1

這顯然是一個跨域請求問題

郵差是一個擴展

普通網頁能夠使用XMLHttpRequest對象來發送和 從遠程服務器接收數據,但他們受相同的 原產地政策限制。擴展不限於此。一個分機可以與 遠程服務器通話,只要它首先請求 跨域權限。

爲了開發目的,您可以簡單地禁用chrome的--disable-web-security,這將爲您完成這項工作。

您可以簡單地使用這個Chrome擴展Allow-Control-Allow-Origin

+0

瀏覽器的控制檯顯示 XMLHttpRequest無法加載http://xxx.xxx.xxx.xxx/api/getusers'。無效的HTTP狀態代碼401 它是關於驗證標頭嗎? –

+0

,這是因爲我們的訪問令牌已過期或無效 – maddygoround

0

CORS錯誤;後端開發人員解決。所以我想聯繫你的後端開發者....