2016-08-19 2 views
2

Je la méthode suivante pour http dans angulaire 2 avec en-tête sertie {"Content-Type": "application/json",'Authorization':this.authToken}Angular2 et Noeud: Réponse de prévol a le code d'état HTTP invalide 403

public allJobsStageWidget1=(): Observable<WidgetModel[]> => { 
    let widget1Url= this._configuration.ServerWithApiUrl + 'getAllJobsStagesCount'; 
    return this._http.get(widget1Url,new RequestOptions({ 
     headers: new Headers({"Content-Type": "application/json",'Authorization':this.authToken}) 
    })) 
     .map((response: Response) => {console.log(response.json());response.json() }) 
     .catch(this.handleError); 
    } 

et dans mon application noeud, les choses suivantes sont faites:

app.use(function(req, res, next) { 
    res.header('Access-Control-Allow-Credentials', true); 
    res.header('Access-Control-Allow-Origin', '*'); 
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS'); 
    res.header('Access-Control-Allow-Headers', 'X-Requested-With, X-HTTP-Method-Override, Content-Type, Accept'); 
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type,Authorization ,Accept'); 
    next(); 
}); 

Quand je fais une demande GET, puis 'XMLHttpRequest cannot load http://rest-0023:3000/api/getAllJobsStagesCount. Response for preflight has invalid HTTP status code 403' erreur est renvoyée, comme je l'ai déjà mis tous les en-têtes. Mais je ne sais pas exactement où il me manque des choses.

+0

J'ai eu le même problème. Avez-vous eu une solution? – Amir

Répondre

0

Il semble que vous n'avez pas refusé une méthode d'autorisation. Je pense que la ligne d'en-tête devrait ressembler à ceci:

headers: new Headers({ 
    "Content-Type": "application/json", 
    "Authorization": "Basic " + this.authToken 
})