Ho questo codice utilizzato all'interno di un Servizio angolare: -
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;
});
};
Controllo utilizzando la scheda di rete nei tool di sviluppo di Chrome dimostra che v'è una risposta 200 OK
. Anche i dati passano come previsto. Tuttavia, il problema è che la richiamata error
è l'unica che sia mai stata chiamata indipendentemente dal fatto che abbia uno stato di 200. Anche i parametri data
e status
si presentano come undefined
.
Qualsiasi motivo questo sarebbe il caso?
La risposta del server è questo:
{status: 'success', path: 'assets/profile/profilepicture.png'}
Si noti inoltre che questa risposta non può essere modificata da me. Viene dallo script di un fornitore in esecuzione sul server a cui non posso accedere.
Puoi mostrarci quali dati provengono dal server? vederlo nella scheda di rete negli strumenti di sviluppo – karaxuna
è possibile che l'angolare attende i dati json formattati e si restituiscono dati errati – karaxuna
@karaxuna Aggiunta la risposta alle domande. – claydiffrient