XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   Javascript & Ajax (http://xhtmlforum.de/forumdisplay.php?f=83)
-   -   Kann der Server ein ReadyState = 0 verursachen? (http://xhtmlforum.de/showthread.php?t=68351)

as2005 31.10.2012 11:21

Kann der Server ein ReadyState = 0 verursachen?
 
Hallo alle zusammen,

Ich rufe mithilfe von JQuery einen Webservice auf der JSON versteht.

Code:

                  $.ajax({
                        type: "POST",
                        contentType: "application/json; charset=utf-8",
                        url:url,
                        data: JSON.stringify(parameter),
                        dataType: "json",
                        cache:false,
                        crossDomain: true,
                        success: function(data){
                          ...
                        }
                    }).error(function(e){
                                ...
                    });

Soweit funktioniert das auch. Allerdings bekomme ich bei einer bestimmten Funktion machmal einen Error mit readyState=0.
Und zwar abhängig vom Inhalt eines bestimmten Parameters!
Es geht dabei um einen 15 Zeichen langen String(ID einer Kostenstelle) und eigentlich kann ich mir nicht vorstellen wie der Inhalt das verursachen kann.

Leider habe ich keinen anderen Zugang zum Webservice (wurde von anderer Firma erstellt).

Meine Frage ist jetzt, kann der Server den ReadyState = 0 verursachen ?
Wenn ja/nein, warum? Was könnte das sein?

Weiß gerade nicht mehr weiter...


Schonmal danke im voraus.

Lg.

as2005

protonenbeschleuniger 31.10.2012 11:27

Nein, der Inhalt hat keinen Einfluss auf den readyState. Dieser triggert ja nur die Übertragung The XMLHttpRequest Object

Der Fehler muss an etwas anderem liegen.

as2005 31.10.2012 11:32

Dachte ich auch!
Deshalb die Frage ob auch der Server so etwas verursachen kann?
Es ist aber so, wenn ich auch nur ein Zeichen im Parameter ändere funktioniert der Aufruf. Habe das mehrfach geprüft!

lg.
As2005

protonenbeschleuniger 31.10.2012 11:59

Das kann ich mir nicht vorstellen.

Nachtrag: Kann es sein, dass dann die Serveranwendung abschmiert? Hast du mal den Aufruf ohne AJAX probiert?

inta 31.10.2012 12:08

Sicher, dass der Server etwas damit zu tun hat? Welchen Statuscode liefert der Server zurück? Der müsste immer größer 0 sein. jQuery.ajax arbeitet offensichtlich mit einem Fake-XHR-Objekt (jqXHR) mit initialem readyState-Wert von 0. Wird überhaupt etwas vom Server abgerufen und kommt etwas zurück?

Kannst du bitte einen Testcase online stellen?

threadi 31.10.2012 13:49

Ich habe so einen Fall wo readyState 0 wird. Das ist ein geschlossenes System, welches mit der SingleSignOn-Anwendung Shibboleth geschützt wird. Shibboleth ist in den Apache als Modul integriert und prüft anhand eines Cookies, ob der aufrufende Nutzer zugreifen darf. Darf er das nicht leitet das Modul automatisch zum Loginsystem weiter. Wenn das Cookie nun die Timeout-Grenze erreicht und der dazugehörige Nutzer einen AJAX-Request abschickt, kommt ein ReadyState 0 zurück - denn AJAX kann mit der Umleitung durch das Apache-Modul nicht umgehen.

Also ja, wenn der Server einen Fehler verursacht kann der Wert 0 entstehen. Schau mal in die Error-Logs deines Webservers, da solltest Du die Ursache erkennen.

as2005 31.10.2012 15:04

In den meisten Fällen Funktioniert die Abfrage ja. Nur bei bestimmten (gültigen)Werten im Parameter kommt der Fehler.

Habe leider keinen Zugriff auf den Webserver. Wird von einem Kunden gehostet und bereitgestellt, wir greifen nur darauf zu. Kann deshalb auch keinen Testcase online stellen.

Wichtig war/ist mit zu wissen das die dort einen Fehler haben könnten und es nicht mein Fehler sein muss. Hatte ein derartiges Problem noch nie.

lg.

as2005

inta 31.10.2012 15:06

Zitat:

Zitat von threadi (Beitrag 522165)
[…] - denn AJAX kann mit der Umleitung durch das Apache-Modul nicht umgehen.

Wenn das Modul nichts besonderes macht, sondern einen normalen Redirect, dann kann der Browser damit umgehen und wird dem Redirect folgen solange nicht gegen die Same-Origin-Policy verstoßen wird:
XMLHttpRequest Level 2

threadi 31.10.2012 15:07

Wenn es gültige Werte sind, schau doch mal im Firebug was genau bei dem Request passiert. Dort siehst Du was geschickt wird und was zurück kommt - falls etwas zurück kommt.

protonenbeschleuniger 31.10.2012 15:20

Zitat:

Zitat von as2005 (Beitrag 522168)
In den meisten Fällen Funktioniert die Abfrage ja. Nur bei bestimmten (gültigen)Werten im Parameter kommt der Fehler.

Habe leider keinen Zugriff auf den Webserver.

Naja, irgendwie musst du ja Zugriff haben. Am schnellsten geht es, wenn du den Zugriff ganz normal im Browser machst, dann siehst du was der Server antwortet. Alternativ geht natürlich auch Firebug, dass dir darüber hinaus noch Informationen bietet.


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:42 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2023