Il linguaggio JavaScript
 

intercettare "error" su chiamata ajax.

Meldro 25 Nov 2015 16:15
Salve a tutti,
ho del codice JS che esegue una chiamata ajax in questi termini:

$.ajax({
url: "calcolo.php",
type: "POST",
data: dataString,
dataType: "json",
success: function(output) {
elabora(output);
},
error: function() {
alert("Chiamata fallita, si prega di riprovare...");
}
});

La chiamata sistematicamente mi va in error e restituisce l'alert specifico.

Vorrei capire PERCHE' mi va in error e non in success, visto che quello
che esce dal ******* calcolo.php è comunque in JSON formalmente valido.

Non dovrebbe uscire in success?

Come posso capire cosa non va?

Grazie in anticipo.
Alessandro Pellizzari 25 Nov 2015 20:53
Il Wed, 25 Nov 2015 16:15:57 +0100, Meldro ha scritto:

> ho del codice JS che esegue una chiamata ajax in questi termini:
>
> $.ajax({
> url: "calcolo.php",
> ...
> La chiamata sistematicamente mi va in error e restituisce l'alert
> specifico.

Le chiamate AJAX di jQuery vanno in error quando il server non restituisce
un codice 2xx (solitamente 200, ma dipende da come hai strutturato il
programma).

> Vorrei capire PERCHE' mi va in error e non in success, visto che quello
> che esce dal ******* calcolo.php è comunque in JSON formalmente valido.

Sei sicuro che sia formalmente valido? C'è l'header Content-type corretto?
La risposta torna il codice corretto?

> Come posso capire cosa non va?

Il modo più veloce è usare Firefox con Firebug e vedere nella console il
tracciamento della chiamata: quali header partono, quali tornano, come
viene vista la risposta.

Bye.
4ndre4 26 Nov 2015 14:13
On Wednesday, 25 November 2015 15:16:08 UTC, Meldro wrote:

[...]
> Come posso capire cosa non va?

Facendo debug, ovviamente. Passo passo, *****izzando cio` che viene passato
sulla rete come richiesta/risposta. Inoltre:

"error
Type: Function( jqXHR jqXHR, String textStatus, String errorThrown )
A function to be called if the request fails. The function receives three
arguments: The jqXHR (in jQuery 1.4.x, XMLHttpRequest) object, a string
describing the type of error that occurred and an optional exception object, if
one occurred. Possible values for the second argument (besides null) are
"timeout", "error", "abort", and "parsererror". When an HTTP error occurs,
errorThrown receives the textual portion of the HTTP status, such as "Not Found"
or ******* Server Error." As of jQuery 1.5, the error setting can accept an
array of functions. Each function will be called in turn. Note: This handler is
not called for cross-domain script and cross-domain JSONP requests. This is an
Ajax Event." http://api.jquery.com/jquery.ajax/

Aggiungi i parametri alla tua funzione di errore e vedi qual e` lo status code
che ti restituisce il server e che errore esattamente viene sollevato.

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Il linguaggio JavaScript | Tutti i gruppi | it.comp.lang.javascript | Notizie e discussioni javascript | Javascript Mobile | Servizio di consultazione news.