AngularJS Post Anfrage funktioniert nicht richtig auf Firefox
Ich schreibe eine Website mit AngularJS, die mit einer API auf dem Server kommuniziert und einige Informationen bereitstellt. Für den Login-Teil sollte ich eine http-Post-Anfrage mit E-Mail, Passwort usw. senden. Es funktioniert gut auf Google Chrome und IE. Ich meine, es sendet die Post-Anfrage und bekommt einen Token. Aber in FireFox, als ich im Netzwerk eingecheckt habe, sendet es eine OPTION-Anfrage und bekommt 200, aber danach sendet es keinen Beitrag mehr! Daher würde mein Login nicht verschwinden und ich bekomme kein Token.
was soll ich für diese Situation tun?
App.config:
$httpProvider.defaults.withCredentials = true;
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8;';
$httpProvider.interceptors.push('httpRequestInterceptor');
Funktion im Dienst, die die Anfrage sendet:
this.loginEmail = function(f_email, f_pass, deviceModel, deviceOs) {
var data = $.param({
email: f_email,
password: f_pass,
device_model: deviceModel,
device_os: deviceOs
});
return $http({
method: "POST",
url: app.baseUrl + 'login_email/' + app.storeID + '/' + app.device_id,
data: data
}).success(function(response){
return response.status;
});
/*return $http.post(app.baseUrl + 'login_email/' + app.storeID + '/' + app.device_id, data).success(function(response){
return response.status;
}).error(function(response){
return response.status;
});*/
};
Server-Anmeldeinformationen sind wahr
CORS scheint in Ordnung zu sein, weil ich Anfrage bekommen kann
EDIT: Folgendes hängt möglicherweise mit diesem Problem zusammen: Wenn ich in Chrome angemeldet bin, um Anfragen zu erhalten, wird der Token-Header gesendet, bei Post jedoch nicht.
httpRequestInterceptor:
app.factory('httpRequestInterceptor', function ($cookieStore) {
return {
request: function (config) {
config.headers['Authorization'] = $cookieStore.get('Auth-Key');;
config.headers['Accept'] = 'application/json;odata=verbose';
return config;
}
};
});