robertosalemi Inserito: 23 maggio 2020 Segnala Share Inserito: 23 maggio 2020 (modificato) Ciao a tutti,sto realizzando un'applicazione basata su ASP.net MVC.Tramite Ajax effettuo la chiamata ad diversi metodo, esempio può essere: public ActionResult MyMethod(DateTime ref_date) { try { //code return new FileContentResult(stream.ToArray(), "application/pdf"); } catch (Exception ex) { return StatusCode((int)HttpStatusCode.InternalServerError, ex.Message); } } Se l'eccezione non scatta, nella success della chiamata ajax eseguo la procedura desiderata...Se viene generata l'eccezione, scatta l'error della chiamata ajax, ma non riesco a catturare in alcun modo l'ex.Message: error: function (err, type, httpStatus) { console.log(err); var failureMessage = 'Error occurred in ajax call ' + err.status + " - " + err.responseText + " - " + httpStatus; console.log(failureMessage); console.log(err.responseText); } Se ad esempio il metodo va in eccezione perchè il file usato come modello è lockato da un altro processo, nell'eccezione del metodo lo vedo, nella chiamata Ajax no, non riesco a catturarlo.Probabilmente sbaglio il tipo di ritorno in caso di exception?Grazie. Modificato: 23 maggio 2020 da robertosalemi Link al commento Condividi su altri siti More sharing options...
robertosalemi Inserita: 3 giugno 2020 Autore Segnala Share Inserita: 3 giugno 2020 Ho trovato l'errore, modificando questa parte della chiamata ajax: - se la risposta è success allora il type atteso è un blob - se la risposta è error allora il type atteso è un text xhr: function () { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState == 2) { if (xhr.status == 200) { xhr.responseType = "blob"; } else { xhr.responseType = "text"; } } }; return xhr; }, Grazie! Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora