Ho un semplice blocco http di AngularJS $ in questo modo;
$http(req).then(function successCallback(response) {
alert(response);
}, function errorCallback(response) {
alert(response);
});
Il mio problema è che quando il mio controller ASP.NET restituisce un codice di errore HTTP, il JS errorCallback riceve un oggetto come;
{data: "", status: 304, config: Object, statusText: "Not Modified"}
Non importa quello che faccio, non riesco a popolare la proprietà dei dati nel mio callback.
Se invece il mio controller restituisce un codice HTTP OK, viene richiamato il callback "success" e sono disponibili i dati di restituzione. Ma non quando si tratta di un errore ... aiuto!
La funzione controller è un gestore POST WebAPI e ha un aspetto simile;
[System.Web.Http.HttpPost]
public async Task<HttpResponseMessage> Save([FromBody]object data)
{
...<snip>...
return new HttpResponseMessage
{
StatusCode = HttpStatusCode.NotModified,
Content = new JsonContent(JObject.FromObject(new
{
success = false,
message = "User not authorised to perform this action."
}))
};
}
Lo stesso costrutto, ma con;
StatusCode = HttpStatusCode.OK
È stato ricevuto correttamente nella richiamata di successo nel JS.
È solo un errore di battitura nel codice? 'data' vs' risposta'? –
@ EvanTrimboli: sì, corretto. –
Cosa ti aspetti di essere in 'data' quando c'è un errore ..? – Rob