У меня есть угловое приложение. У меня возникла проблема с вызовом POST и с использованием директивы $ http. В моем контроллере я делаю два вызова через потребление Api службы, которые я сделал: getMe() и и назначение (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>
Вот реальные вызовов в контроллере. Мы делаем запрос GET конечной точке пользователя, а затем отправляем сообщения в обратный вызов.
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>
Это правильно выполняется в Chrome и Firefox, но не Safari. В Safari он вызывает запрос GET на http: applicationname.com/18885052939,[email protected],percentageparameter. Запрос фактически вызывает сериализованные параметры вызова POST для присвоений.
В Chrome у нас есть правильное поведение. После запроса GET для пользователей/меня мы нажмем http://local.appname.com:9000/api/numbers/assignments с параметрами данных POST.
Не уверен, что вызывает ошибку в Safari, но интересно, где я ошибаюсь. Это более ранняя версия углового (1.2.15).
Последнее исправление ошибки для Angular v1.2 - v1.2.32. Попробуйте эту версию, чтобы узнать, исправлены ли связанные с Safari ошибки. – georgeawg
спасибо @georgeawg Я попробую. –
@georgeawg попробовал. Кажется, это не источник проблемы. –