it-swarm.com.de

Das Anforderungsheaderfeld ist für Access-Control-Allow-Headers mit $ http nicht zulässig

Ich mache einPOSTfür einen Dienst mit Postman Chrome Extension und erhalte die erwartete Antwort.

Aber wenn ich das gleiche machePOSTrequest using $http, geht alles zur Hölle.

Ich bekomme ein :

Request header field Engaged-Auth-Token is not allowed by Access-Control-Allow-Headers

Engaged-Auth-Token ist ein Header.

Ich habe keine Ahnung, warum mit Postman funktioniert und es funktioniert nicht mit Chrome ...

Irgendwelche Ideen?

6

Das Problem ist auf das Fehlen von Access-Control-Allow-Headers im Anforderungsheader zurückzuführen. Um dies zu beheben, müssen wir Access-Control-Allow-Headers: * hinzufügen, um den Header anzufordern

Fügen Sie dem Access-Control-Allow-Headers einen http request header hinzu. Sie können dies auf App-Ebene mit $httpProvider tun. Fügen Sie im Abschnitt "App-Konfiguration" die folgende Zeile hinzu, um diesen Header hinzuzufügen.

var app = angular.module("app", [
    "ngRoute",
    "app.controllers",
    "app.directives",
    "app.filters"
]);

app.config([
    "$routeProvider",
    "$httpProvider",
    function($routeProvider, $httpProvider){
        $httpProvider.defaults.headers.common['Access-Control-Allow-Headers'] = '*';
    }
]);
1
Aditya Singh

Ich glaube, die Konfiguration der Access-Control-Allow-Header auf dem $ httpProvider auf dem Client wird nicht funktionieren. Ich denke, der Header muss auf dem Server konfiguriert werden (als Antwortheader). In einer Node-Express-Anwendung könnte dies zum Beispiel mit einer Middleware geschehen, die ungefähr so ​​aussieht:

res.header('*')

oder (selektiver) nur die Überschriften, die Sie benötigen:

res.header('Engaged-Auth-Token, Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With');
7
raul

wenn Sie sails api im Backend verwenden, ändern Sie cors.js und fügen Sie Ihr hier abgelegtes Token hinzu

module.exports.cors = {
  allRoutes: true,
  Origin: '*',
  credentials: true,
  methods: 'GET, POST, PUT, DELETE, OPTIONS, HEAD',
  headers: 'Origin, X-Requested-With, Content-Type, Accept, Engaged-Auth-Token'
};
0
Sedat Y