Zum Forum springen
jqXHR object respon...
 
Benachrichtigungen
Alles löschen

jqXHR object response

12 Beiträge
3 Benutzer
3 Reactions
1,813 Ansichten
flowIIpoker
Beigetreten: 14.02.2007

steh gerade irgendwie auf dem schlauch

im code wird ein

$.ajax(type:"JSON")

request ausgeloest ohne das das referenziert wird

im chrome eveloper tools seh ich auch die antwort:

{ "foo" :"bar", "foo2" : "bar2"}

aber das json-object ist ja nicht referenziert

wie komm ich denn an den inhalt von "foo2" ran??


Antwort
Zitat
11 Antworten
Cyberisda
Beigetreten: 05.09.2007

JSON ist ein Zeichenketten Format.Das muss erst mal auseinander genommen werden und daraus ein Objekt erstellt werden.

var Object = JSON.parse(String)


Antwort
Zitat
flowIIpoker
Beigetreten: 14.02.2007

var Object = JSON.parse(String)

na genau da liegt das problem ... es gibt (mir ein unbekanntes) object zureuck
was ich zwar sehe aber nicht angreifen kann ... wie heist denn das standart object nach $.ajax()


Antwort
Zitat
Sphageus
Beigetreten: 17.11.2007
$.ajax( { type:"JSON" })
  .done( function(response) {
    // hier benutzen
  });

das ajax() is asynchron, liefert also erstmal nicht die antwort zurück, sondern nur eine referenz auf die anfrage. mit done() kann man sagen "wenn du fertig bist, mach das da"


Antwort
Zitat
flowIIpoker
Beigetreten: 14.02.2007

ich koennte da ja was machen(ist nicht mein code und ubersehe die function nicht)

aber igendwie kann ja das chrome dev tool das abject auslesen und genau die function.methode suche ich


Antwort
Zitat
Sphageus
Beigetreten: 17.11.2007

Sicher, dass die dev tools dir das Object zeigen und nicht einfach nur die normale Response des Requests?
In welchem Tab siehst du die Ausgabe? In der Console oder dem Network Tab?

Es gibt btw auch noch für jQuery globale Hooks: Man kann eine Function festlegen, die vor/nach/während _jedes_ Ajax Requests ausgeführt wird.


Antwort
Zitat
flowIIpoker
Beigetreten: 14.02.2007

ich geh auf network und sehe da die datei,
clicke auf preview bzw response und sehe die antwort..

aus meinem verstaendnis mach der programmiere den $.ajax nur ohne das er das einer variable zuweist
ich bin da ehrlich gesagt neu in dem thema aber deswegen frag ich ja und bedank mich auch fuer die hilfe :)


Antwort
Zitat
Sphageus
Beigetreten: 17.11.2007

Das was du im Network Tab siehst, ist wirklich das was übers Netzwerk geht. Grundsätzlich muss das im JavaScript nicht verwendet werden.

Um die Daten aus einem $.ajax() weiterzuverwenden, gibt es 2 Möglichkeiten:
- wie ich eben schon geschrieben habe über Promises mit dem .done()
- direkt einen Callback bei der Erstellung angeben:

$.ajax({
  success: function( data ) {
    // hier kann man die daten nutzen
  }
})

Ich weiß noch nicht, was du eigentlich machen willst. Von daher ist es schwer konkreter zu werden.

Grundsätzlich kann man einen ajax() auch abfeuern ohne irgendwas mit dem Ergebnis zu machen. Kann man bspw zum Tracken von Nutzern benutzen oder für irgendwelche Logging-Sachen.


Antwort
Zitat
Cyberisda
Beigetreten: 05.09.2007

Wie hier schon geschrieben,muss du wohl ein Objekt mit übergeben,mit dem Parameter success:function(response){
//Code der nach der Antwort ausgeführt werden soll.wahrscheinlich als erste JSON.parse(repsonse)

type nutzt du aber falsch.Da gehört die Http Methode rein(geht,post,put,delete...) und der mime type müsste richtig 'applications/json' sein.
Bin gerade nur am handy,deswegen nicht so ausführlich. Am besten mal hier gucken,welche Parameter du in dem Objekt an die Ajax Funktion übergeben kannst


Antwort
Zitat
Sphageus
Beigetreten: 17.11.2007

Original von Cyberisda
type nutzt du aber falsch.Da gehört die Http Methode rein(geht,post,put,delete...)

Kurz zum klugscheißen: das sind HTTP Verben. Das hat nix mit HTML zu tun. Grundsätzlich hast du da aber recht.

und der mime type müsste richtig 'applications/json' sein.

Den MIME-Type muss man nicht setzen. Wenn man etwas setzen will, dann lieber den dataType. Damit kann man jQuery explizit sagen, was da an Daten ankommt, damit das geparst wird. Muss man normal aber selten tun, solange der Server passend konfiguriert ist. Dann ist die Autodetection hinreichend gut.

Am besten mal hier gucken,welche Parameter du in dem Objekt an die Ajax Funktion übergeben kannst

Args. Warum zweitklassige Doku empfehlen, wenn jQuery direkt eine gute Doku hat? http://api.jquery.com/jquery.ajax/
Generell zu w3schools als Quelle: http://www.w3fools.com/


Antwort
Zitat
flowIIpoker
Beigetreten: 14.02.2007

danke estmal werd mich morgen erstmal durch alles wuehlen.

das das problem nicht trival ist hat wenigstens der chef schon erkannt


Antwort
Zitat
Cyberisda
Beigetreten: 05.09.2007

Original von Sphageus

Original von Cyberisda
type nutzt du aber falsch.Da gehört die Http Methode rein(geht,post,put,delete...)

Kurz zum klugscheißen: das sind HTTP Verben. Das hat nix mit HTML zu tun. Grundsätzlich hast du da aber recht.

?( ?(

und der mime type müsste richtig 'applications/json' sein.

Den MIME-Type muss man nicht setzen. Wenn man etwas setzen will, dann lieber den dataType. Damit kann man jQuery explizit sagen, was da an Daten ankommt, damit das geparst wird. Muss man normal aber selten tun, solange der Server passend konfiguriert ist. Dann ist die Autodetection hinreichend gut.

Meinte damit, das man mit dem Request mitsendet ob der Server in z.b. xml oder json antwortet, falls mehrere zur auswahl stehen.

Am besten mal hier gucken,welche Parameter du in dem Objekt an die Ajax Funktion übergeben kannst

Args. Warum zweitklassige Doku empfehlen, wenn jQuery direkt eine gute Doku hat? http://api.jquery.com/jquery.ajax/
Generell zu w3schools als Quelle: http://www.w3fools.com//blockquote >

Wie geschrieben,war ich unterwegs und nur am Handy. Desweiteren noch nie mit jQuery gearbeitet und so das erst beste Google Ergebnis, was gut aussah verlinkt.


Antwort
Zitat
Teilen: