Ich habe eine eckige Anwendung. Ich habe Probleme mit einem POST-Aufruf und der Verwendung der $ http-Direktive. In meinem Controller mache ich zwei Anrufe durch den Verzehr von Api-Service, die ich gemacht: getMe() und und Zuweisungen (csv):
assignments: function(csv) {
var deferred = $q.defer();
$http({
method: 'POST',
url: '/api/numbers/assignments',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
data: $.param({
skipBillables: false,
assignments: csv,
})
}).success(function(data) {
deferred.resolve(data);
}).error(function(data) {
deferred.reject(data);
})
return deferred.promise;
},
getMe: function() {
return this.cachedGet("https://stackoverflow.com/users/me");
},
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script>
Hier sind die tatsächlichen Anrufe in der Steuerung. Wir stellen die GET-Anforderung an den Endpunkt des Benutzers und anschließend an Zuordnungen im Rückruf bereit.
Api.getMe().then(function(data) {
}, function(error) {
$window.location.reload();
}).finally(function() {
var checkouttollfreenumber = '1' + $scope.savedTollFreeNumberCheckout.tfn;
var assignObj = [{
phoneNum: checkouttollfreenumber,
email: owner.emailAddress,
percent: 0,
}];
var csvFile = downloadCSV(assignObj);
console.log(csvFile);
Api.assignments(csvFile).then(function(data) {
//do something
})
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script>
Es führt ordnungsgemäß in Chrome und Firefox, aber nicht Safari. In Safari ruft es eine GET-Anforderung an http: applicationname.com/18885052939,[email protected],percentageparameter auf. Die Anforderung ruft die serialisierten Parameter des POST-Aufrufs tatsächlich zu Zuweisungen auf.
In Chrome haben wir das richtige Verhalten. Nach der GET-Anfrage für Benutzer/mich haben wir http://local.appname.com:9000/api/numbers/assignments mit den POST-Datenparametern erreicht.
Nicht sicher, was den Fehler in Safari verursacht, aber ich frage mich, wo ich falsch liege. Dies ist eine ältere Version von eckig (1.2.15).
Der letzte Bugfix für Angular v1.2 ist v1.2.32. Probieren Sie diese Version aus, um zu sehen, ob Safari-Bugs behoben wurden. – georgeawg
danke @georgeawg Ich werde es versuchen. –
@georgeawg hat es versucht. Es scheint nicht die Ursache des Problems zu sein. –