Mam ten kod używany w zasięgu kątowym usługi: -
var formData = function (data) {
var fd = new FormData();
angular.forEach(data, function (value, key) {
fd.append(key, value);
});
return fd;
}
var updateUserPic = function (profilePic, callback, userId) {
var userId = userId || FRAME_API.proxyUserId; // jshint ignore:line
if (!_.isFunction(callback)) {
throw new Error('You must provide a callback function.');
}
$http({
method: 'POST',
url: '/Learn/PostUserProfile.ashx?action=profilepic&userid=' + userId,
data: {up_picfile: profilePic},
transformRequest: formData,
headers: { 'Content-Type': undefined}
}).success(function (data, status, headers, config){
callback([data, status, headers, config]);
return;
}).error(function (data, status){
console.log([status,data]);
callback(false);
return;
});
};
Inspecting pomocą karty sieciowej w Chrome Developer Tools pokazuje, że jest to odpowiedź 200 OK
. Również dane przebiegają zgodnie z oczekiwaniami. Problem polega jednak na tym, że wywołanie zwrotne error
jest jedynym wywołanym, niezależnie od tego, że ma status 200. Parametry data
i status
są dostępne jako undefined
.
Jaki by to był powód?
Odpowiedź z serwera to:
{status: 'success', path: 'assets/profile/profilepicture.png'}
Należy również pamiętać, że ta odpowiedź nie może być zmieniony przez mnie. Pochodzi ze skryptu dostawcy działającego na serwerze, do którego nie mam dostępu.
Czy możesz pokazać nam, jakie dane pochodzą z serwera? zobacz go w zakładce sieci w narzędziach programistycznych – karaxuna
Możliwe, że kątowe czeka na sformatowane dane json i zwracasz błędne dane. – karaxuna
@karaxuna Dodano odpowiedź na pytania. – claydiffrient