Unten ist mein Service-Aufruf, wo ich versuche, eine grundlegende Auth zu tun. Ich habe überprüft, dass mehrere Blogs keine Lösung dafür finden konnten.XMLHttpRequest kann nicht geladen werden .... Antwort für Preflight hat ungültigen HTTP-Statuscode 401
Kann jemand mir helfen, dieses Problem zu lösen, wie ich weiter unten Störung erhalte:
XMLHttpRequest cannot load
Response for preflight has invalid HTTP status code 401
ich nicht die Basis Authentifizierung im Netzwerk-Registerkarte in Entwickler-Optionen auch gefunden.
function() {
"use strict";
var APIservice = function($http, $base64) {
var getDetails = function(postData) {
$http.defaults.headers.common['Access-Control-Allow-Origin'] = "*";
$http.defaults.headers.common['Access-Control-Allow-Methods'] = "GET,PUT,POST,DELETE,OPTIONS";
$http.defaults.headers.common['Access-Control-Allow-Headers'] = "Content-Type, Authorization, Content-Length, X-Requested-With";
$http.defaults.headers.common['Content-Type'] = undefined;
console.log($http.defaults.headers.common.Authorization);
//console.log($http.defaults.headers.common.Authorization);
return $http.get('http://52.74.68.202:8080/rest/v1/step/all')
.then(function(response, headers, config) {
console.log(response);
return response;
});
};
return {
getDetails: getDetails
}
}
var module = angular.module('expframework');
module.factory("APIservice", APIservice);
module.run(['$http', '$base64', function($http, $base64) {
var authdata = $base64.encode('test:test');
$http.defaults.headers.common['Authorization'] = 'Basic ' + authdata;
}]);
module.config(['$httpProvider', '$base64', function($httpProvider, $base64) {
var authdata = $base64.encode('test:test');
$httpProvider.defaults.headers.common['Authorization'] = 'Basic ' + authdata;
}])
}();
Es funktioniert in Safari und Emulatoren aber funktioniert nicht in Chrome und Firefox
Bitte helfen Sie mir, dies zu beheben. Danke im Voraus.
CORS-Header darf nicht von Browsern, sondern von Servern eingestellt werden: Browser sendet dann zuerst einen OPTIONS bekannten verlangen, wenn tatsächliche Anforderung autorisiert ist. Welche Art von Server hört auf http://52.74.68.202:8080/rest? Sieht wie ein Tomcat aus? – sp00m
Haben Sie CORS auf Ihrem Server aktiviert? Sie müssen die OPTIONS Preflight-Anfrage haben, um Zugriff zu haben. –
@ sp00m - Ja, es ist Tomcat und unten ist die Antwortheader Access-Control-Erlaube-Header: Autorisierung, Inhaltstyp, X-Token Access-Control-Allow-Methoden: POST, PUT, GET, OPTIONS, DELETE Access-Control-Allow-Origin: * Access-Control-Expose-Headers: Nachricht Access-Control-Max-Alter: 3600 Allow: GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH cache- Steuerung: no-cache, no-store, max-age = 0, muss revalidieren Content-Length: 0 Datum: Di., 12.07.2016 10:34:14 GMT Pragma: no-cache Server: Apache- Coyote/1.1 WWW-Authenticate: Basic Realm = "IntApp-Basic" –