我使用angulars和内置的$ http指令发布到我们的API端点。它适用于Chrome,但我在Safari中遇到了问题。这是我的Api工厂的电话:
assignments: function(csv) {
var deferred = $q.defer();
$http({
method: 'POST',
url: '/api/numbers/assignments',
data: $.param({
skipBillables: false,
assignments: csv,
}),
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}).success(function(data) {
deferred.resolve(data);
}).error(function(data) {
deferred.reject(data);
})
return deferred.promise;
},

现在我的控制器消耗了我创建的Api.assignments。这是以下代码段:
Api.updateSubscription(org.id, cardData).then(function(data) {
Api.getSession().then(function(data) {
if (!_($scope.savedTollFreeNumberCheckout).isBlank()) {
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) {
$window.location.reload();
});
};
});
});

当我打电话给它时,它适用于Chrome。唯一不起作用的浏览器是Safari。在Safari中,正在调用的完整URL是:http://local.appname.com:9000/18775078169,useremai@email.com,percentageparameter,它不是正确的端点。在Chrome中它正在点击http://local.appname.com:9000/api/numbers/assignments如果有人对修复有任何建议,我将非常感谢您的帮助。
答案 0 :(得分:-1)
如果您计划将数据作为带有post请求的json对象发送,我认为您不需要$ .params。
$ .param主要用于序列化查询参数的参数。
assignments: function(csv) {
var deferred = $q.defer();
$http({
method: 'POST',
url: '/api/numbers/assignments',
data: {
skipBillables: false,
assignments: csv,
},
headers: {
'Content-Type': 'application/json'
}
}).success(function(data) {
deferred.resolve(data);
}).error(function(data) {
deferred.reject(data);
})
return deferred.promise;
},
你应该这样做,或者如果你真的想将数据作为queryparams发送
assignments: function(csv) {
var deferred = $q.defer();
$http({
method: 'POST',
url: '/api/numbers/assignments'+'?'+$.params({ skipBillables: false,assignments: csv}),
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}).success(function(data) {
deferred.resolve(data);
}).error(function(data) {
deferred.reject(data);
})
return deferred.promise;
},
但作为发送数据的良好做法
获取请求 - 使用查询参数
发布请求 - 使用json