tôi có mã này được sử dụng trong một dịch vụ kiễu góc: -
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;
});
};
Kiểm tra bằng cách sử dụng tab Mạng trong Công cụ nhà phát triển Chrome cho thấy rằng có một phản ứng 200 OK
. Ngoài ra dữ liệu đi qua như mong đợi. Tuy nhiên, vấn đề là cuộc gọi lại error
là người duy nhất được gọi là bất kể thực tế là nó có trạng thái là 200. Ngoài ra, các tham số data
và status
là undefined
.
Bất kỳ lý do nào trong trường hợp này?
Câu trả lời từ máy chủ là thế này:
{status: 'success', path: 'assets/profile/profilepicture.png'}
Ngoài ra, lưu ý rằng phản ứng này không thể thay đổi bởi tôi. Nó đến từ kịch bản của nhà cung cấp đang chạy trên máy chủ mà tôi không thể truy cập.
Bạn có thể cho chúng tôi biết dữ liệu nào đến từ máy chủ không? nhìn thấy nó trong tab mạng trong các công cụ phát triển – karaxuna
có thể là góc chờ đợi cho dữ liệu định dạng json và bạn đang trả về dữ liệu sai – karaxuna
@karaxuna Đã thêm câu trả lời cho các câu hỏi. – claydiffrient