Http.post No 'Access-Control-Allow-Origin' - header vorhanden ist, auf die angeforderte Ressource
So, ich bin versucht, rufen Sie eine http.post-Anforderung von Winkel zu meiner MVC-Account-controller zum ausführen der externallogin Methode. Ich erhalte die Fehlermeldung "Keine" Access-Control-Allow-Origin' - header vorhanden ist, auf die angeforderte Ressource." So habe ich etwas Graben und es scheint, es hat etwas zu tun mit CORS.
var chrome = 100;
var width = 500;
var height = 500;
var left = (screen.width - width) / 2;
var top = (screen.height - height - chrome) / 2;
var options = "status=0,toolbar=0,location=1,resizable=1,scrollbars=1,left=" + left + ",top=" + top + ",width=" + width + ",height=" + height;
window.open("about:blank", "login-popup", options);
authService.externalLogin(provider, returnUrl).then(function (response) {
})
var _externalLogin = function (provider, returnUrl) {
_logOut();
var deferred = $q.defer();
$http.post(
'/Account/ExternalLogin', {
provider: provider,
ReturnUrl: returnUrl
}).success(function (response) {
deferred.resolve(response);}).error(function (err, status) {
_logOut();
deferred.reject(err);});
return deferred.promise;
};
Also hier geht es in den controller und erstellt die entsprechenden Pfad. Aber dann, wenn es abgeschlossen ist die Methode, die den Fehler erzeugt, ohne dass Sie das Fenster öffnen.
Ich habe versucht, die Umsetzung der CORS mit http://www.html5rocks.com/en/tutorials/cors/ aber nichts geändert. Könnte mir jemand erklären, wie man dieses Problem beheben?
InformationsquelleAutor Julius Doan | 2015-09-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, einige Kopf auf Ihre post-Anfrage. Zum Beispiel, einige Anpassungen, die Sie tun können:
Hoffe, das hilft!
EDIT: Das folgende scheint zu funktionieren (Lesen Sie Anmerkungen unten):
Du bist gut, das sollte gehen auf Ihre
app.js
aber die Position ist egal, solange es in Ihrem Haupt-HTML-Datei. Dies kann durchaus eine schwierige Sache zu Debuggen. Zwei andere Dinge zu versuchen: Stellen Sie sicher, dass Sie Ihre Winkel-app von einem server (localhost) und nicht nur öffnen .html-Datei aus Ihrem Dateisystem. Zweitens, versuchen auch die Angabe der$http.defaults.headers.post['Content-Type'] = 'application/json'
oder was auch immer Sie sind versenden.Oh! Und etwas sehr wichtiges! Stellen Sie sicher, Sie sind auch das senden von Daten in Ihrem post-Anforderung! Wie dieser $http({ url: '/Konto.ExternalLogin', dataType: 'json', method: 'POST', data: { provider: Anbieter, ReturnUrl: returnUrl, }, headers: { "Content-Type": "application/json" } }
Hmm. also, wenn ich die folgenden updates und ich bekomme die gleiche Fehler. Ich glaube nicht, dass der $http.post und Ihrer Methode unterscheiden, wie es in der Lage ist, an den controller. Nachdem der controller läuft es in der dispose-Methode verwendet wird, und das ist, wo bekommt er den Fehler. Ich habe versucht, hinzufügen von benutzerdefinierten Header der Website.Config-Datei, aber kein Glück entweder. Danke!
Heh habe es an die Arbeit. Nachdem Sie Ihre updates, ich fand einige Tippfehler sind Fehler, die wirklich nur mich geschraubt. Dank
InformationsquelleAutor David Meza