2017-04-06 4 views
0

So habe ich eine dumme Frage dazu:Ajax Anfrage was?

$.ajax({ 
      type: "GET", 
      url: `URL`, 
      data: DO STUFF WITH WHAT I GOT FROM THE REQUEST???, 
     }); 

In Ajax, wenn ich eine GET-Anforderung von einer URL machen, mit den data: Parametern sind ich eine Antwort geben, die data ist oder data die Daten, die ich erhielt von der Anfrage?

+0

Die Eigenschaft 'data' in Ihrem Code sind die Daten, die Sie an den Server senden. – David

+0

Also, wie mache ich mich mit den Daten, die ich vom GET bekommen habe? Das verwirrt mich, egal wie sehr ich die Dokumentation lese. –

+0

Sie stellen einen Rückruf bereit, um die asynchrone Antwort zu behandeln. Werfen Sie einen Blick auf den '.done()' Callback in den Beispielen: http://api.jquery.com/jquery.ajax/ – David

Antwort

1

Sie können etwas mit den Daten in den Erfolg Teil des Ajax-Aufruf tun:

$.ajax({ 
    dataType: 'json', 
    url: url, 
    data: data, 
    success: success 
}); 

In diesem Fall wird ein Potential Erfolg Rückruf würde wie folgt aussehen:

function success(data) { 
    // do something with data, which is an object 
} 

oder wenn es Es sind keine zu sendenden Daten:

function testAjax(handleData) { 
    $.ajax({ 
    url:"getvalue.php", 
    success:function(data) { 
     handleData(data); 
    } 
    }); 
} 
+0

Also wirklich brauche ich nicht einmal 'data:' in der Anfrage, wenn alles, was ich tun möchte, ist die Daten, die ich vom Server erhalten habe, als ich die Anfrage gemacht habe. Ich mache einfach alles in 'success (data received) => {tu sachen},' –

+1

Ja, wenn du nichts sendest. Siehe meine aktualisierte Antwort. Der Datenparameter der Rückruffunktion ist das, was vom Ajax-Aufruf zurückgegeben wird. – Wiredo

+0

Ich endete damit und es funktioniert wie ein Charme, danke! –

1

Die wichtigste Sache zu verstehen ist hier, dass jeder AJAX-Aufruf (jede Web-Anfrage wirklich) zwei Komponenten hat: Eine Anfrage und eine Antwort. Der tatsächliche Funktionsaufruf $.ajax() sendet die Anforderung und eine Rückruffunktion wird bereitgestellt, um die Antwort zu verarbeiten.

Zur Veranschaulichung:

$.ajax({ 
    type: "GET", // request type 
    url: "http://www.example.com/someResource", // destination URL 
    data: { name: "David", location: "Boston" } // data to send 
}); 

Diese eine GET-Anfrage an die angegebene URL machen würde, ist es die angegebenen Daten zu senden. Die Antwort wird in diesem Fall ignoriert, da kein Rückruf bereitgestellt wird. Aber man kann eine liefern:

$.ajax({ 
    type: "GET", 
    url: "http://www.example.com/someResource", 
    data: { name: "David", location: "Boston" } 
}).done(function(response) { 
    // handle the response 
}); 

Die Funktion, die „Greifen die Antwort“ enthält, wird vom System aufgerufen werden, wenn die AJAX Antwort vom Server empfangen wird. Die response Variable (oder was auch immer Sie diese Variable nennen wollen, der Name spielt keine Rolle) enthält alles, was der Server im Gegenzug gesendet hat. Was könnte alles sein, wirklich.

+0

Also wirklich brauche ich nicht einmal 'data:' in der Anfrage, wenn alles, was ich tun möchte, ist, die Daten zu nehmen, die ich vom Server erhalten habe, als ich die Anfrage gemacht habe. Ich mache einfach alles in '.done ((Daten empfangen) => {tu Zeug};' –

+1

@RyanTibbetts: Wenn es keine Daten zu senden gibt, dann sicher. Es gibt eine Vielzahl von Optionen, die in der Dokumentation verwendet werden können, aber für eine bestimmte AJAX-Anforderung werden nur sehr wenige von ihnen benötigt. – David

+0

Ich habe das nicht versucht, um zu sehen, ob das tatsächlich funktioniert, ich nehme an, dass es funktioniert, jedoch nutzte ich den erfolgreichen Weg, um mit Daten umzugehen, Danke für deine Hilfe David, du hast auch verstanden, dass ich die Ajax-Anfrage mehr verstehe. –