angularjs - Angular Error: Request header field x-access-token is not allowed by Access-Control-Allow-Headers -


i'm new using api's i'm attempting json data open weather api. in app, when user logged in cannot retrieve data , error above. how can allow user access app , have access api's data? not sure how set headers issue.

app.js

//./public/app/app.js angular.module('swellsapp', [   'approutes',   'authservice',   'userservice',   'weatherservice',   'mainctrl',   'userctrl',   'weatherctrl',   'ngmessages' ])   //application configuration integrate tokens our requests   .config(function($httpprovider){     //attach auth interceptor http requests     $httpprovider.interceptors.push('authinterceptor');   }); 

authservice.js

// authservice.js  angular.module('authservice', [])   // ============================================   //auth factory login , information   //inject $http communicating api   //inject $q return promise objects   //inject authtoken manage tokens   // ============================================    .factory('auth', function($http, $q, authtoken){     //create auth factory object     var authfactory = {};      // handle login users     // post request /api/authenticate     authfactory.login = function(username, password){       //return promise object , data       return $http.post('/api/authenticate', {         username: username,         password: password       })         .success(function(data){           authtoken.settoken(data.token);           return data;         });     };      //log user out clearing token useing authtoken factory     authfactory.logout = function(){       //clear token       authtoken.settoken();     };      //check if user logged in , check if there local token     authfactory.isloggedin = function(){       if(authtoken.gettoken())         return true;       else         return false;     };      //get logged in user     authfactory.getuser = function(){       if(authtoken.gettoken())         return $http.get('/api/me');       else         return $q.reject({message: "user doesn't have token"});     };      //return auth factory object     return authfactory;   })//end auth    // ============================================   // factory handling tokens   // inject $window store token on client-side   // ============================================    .factory('authtoken', function($window){     var authtokenfactory = {};      //get token out of local storage     authtokenfactory.gettoken = function(){       return $window.localstorage.getitem('token');     };      //set token or clear token     //if token passed, set token - if there no token, clear local storage     authtokenfactory.settoken = function(token){       if(token)         $window.localstorage.setitem('token', token);       else         $window.localstorage.removeitem('token');     };      //return auth token factory     return authtokenfactory;   })//end authtoken    // ============================================   // application configuration integrate token requests   // ============================================    .factory('authinterceptor', function($q, $location, authtoken){     var interceptorfactory = {};      //attach token http requests     interceptorfactory.request = function(config){       //grab token       var token = authtoken.gettoken();        //if token exists add header x-access-token       if(token)         config.headers['x-access-token'] = token;        return config;     };      //on response errors      interceptorfactory.responseerror = function(response){       //if server returns 403 forbidden response       if(response.status == 403)         $location.path('/login');        //return errors server promise       return $q.reject(response);     }      //return interceptorfactory     return interceptorfactory;   });//end authinterceptor 

weatherservice.js

//weatherservice.js  angular.module('weatherservice', [])    .factory('weather', function($http, $q){     //create empty weather factory     weatherfactory = {};      //make request weather      weatherfactory.getweather = function(zip){       $http.get('http://api.openweathermap.org/data/2.5/forecast/city?id=524901')          .success(function(data){           console.log(data);         })          .error(function(err){           console.log('error getting data');         });         return $q.reject(zip);     };//end getweather      //return weatherfactory;     return weatherfactory;   });//end weather factory 


Comments