Ich habe einen sehr einfachen Ajax-Aufruf, um die vom Server gemeldeten Daten zu warnen
$.ajax({
type: "POST",
url: "/someform/act", //edit utl to url
data: { changed: JSON.stringify(plainData) }, //edit to include
success: function(data) {
alert(data); //data not $data
},
error: function() {
//error condition code
}
});
Laut dem Dokumente Auf der jquery-Website in Bezug auf das Datenfeld beim Erfolgsrückruf heißt es, dass die zurückgegebenen Daten die Daten vom Server sind. Allerdings aus irgendeinem seltsamen Grund, wenn ich alarmiere $dataIch bekomme [object Object]
Ich hatte so etwas erwartet, da der Server das zurücksenden würde
<status>0</status>
BEARBEITEN:
Daten werden auch als POST weitergegeben
Was bekommen Sie, wenn Sie verwenden alert(data);?
– Felix Klinge
5. August 2013 um 16:24 Uhr
Der Server hat XML zurückgesendet, jQuery hat dann besagtes XML geparst. Was Sie haben, ist ein XML-Dokument. Versuchen console.log(data)
– Kevin B
5. August 2013 um 16:24 Uhr
Ich bekomme success wenn ich Daten alarmiere
– Tauhid
5. August 2013 um 16:27 Uhr
Dann gibt Ihr Server nicht das zurück, was Sie denken, oder das Problem liegt an etwas, das nicht in Ihrem obigen Code enthalten ist.
– Kevin B
5. August 2013 um 16:33 Uhr
Ich bin mir nicht sicher, ob das die Ursache war, aber ich habe den obigen Code geändert, um meinen Code widerzuspiegeln
– Tauhid
5. August 2013 um 16:40 Uhr
Sie müssen verwenden JSON.stringify(data) in dem alert um etwas lesbares zu bekommen.
Ebenfalls, $data ist ein ganz anderer Variablenname als data.
Nicht wirklich, es kommt darauf an, was data ist. Vielleicht ist es schon ein String.
– Felix Klinge
5. August 2013 um 16:23 Uhr
Ich bekomme success als Antwort zurück. Ich hatte gehofft, das XML vom Server zurückzubekommen
– Tauhid
5. August 2013 um 16:23 Uhr
Ich bekomme {"0":{},"length":1}
– Anonymer Benutzer
12. April um 3:51
alert() druckt die Zeichenfolgendarstellung der Argumente – wenn Sie also ein Objekt übergeben, erhalten Sie [object Object].
Um Daten zu untersuchen, verwenden Sie console.log(data) besser.
L105
Wenn Ihr Server ein JSON sendet, müssen Sie setzen dataType: 'json' zu Ihrem Ajax-Aufruf. Beachten Sie, dass Ihr Ajax-Aufruf einen Fehler enthält.
$.ajax({
type: "POST",
url: "/someform/act", // NOT 'UTL',
data: {
key: value,
key2: value2
},
// or data: plaindata, // If 'plaindata' is an object.
dataType: 'json',
success: function(data) {
console.log(data); // As moonwave99 said
},
error: function() {
//error condition code
}
});
BEARBEITEN
Beim Senden von Daten sollten Sie ein Objekt senden. jQuery verarbeitet das Array, um es an den Server zu senden. Wenn also einfache Daten ein Objekt sind, sollte es so sein
data: plainData,
Wenn Sie Daten per senden $.ajax({...})wird möglicherweise die Registerkarte Netzwerk Ihres Browser-Inspektors angezeigt [object Object] in dem Payload (Chrom) / Request (Firefox) Unterregisterkarte, wie im folgenden Bild (Firefox):
Der Grund dafür könnte in der Art und Weise liegen, wie Sie Ihren AJAX-Aufruf bilden. Speziell:
$.ajax({
url: '/ajax/example-endpoint',
data: {'fooKey':fooData,'barKey':barData},
type: 'post',
cache: false,
contentType: false, // this one will turn your data into something like fooKey=fooData&barKey=barData
processData: false, // and this one will make it [object Object]:""
beforeSend: function() {
// whatever it is you need to do
},
success: function(data) {
// do stuff
},
error: function(desc, err) {
// do stuff
}
});
Wenn kombiniert, contentType: false und processData: false verwandeln Sie Ihre Daten in [object Object]weil Sie Ihrem AJAX-Aufruf tatsächlich sagen, dass er den Inhaltstyp von allem, was gesendet wird, ignorieren und nicht verarbeiten soll.
Wenn es sich um IIS handelt, versuchen Sie, eine Site außerhalb der Standardwebsite zu erstellen (z. B. localhost/ajax1). Platzieren Sie zum Beispiel eine neue Site ajax1 nicht im DefaultAppPool, sondern in Ihrem Pool, zum Beispiel ajax1. Versuchen Sie http://ajax1
Ich bin mir nicht sicher, wie dies für die Frage von OP relevant ist.
– Julia
8. März 2021 um 15:21 Uhr
Ich habe die gleiche Nachricht erhalten, Objekt Objekt.
– Yurayurayura
9. März 2021 um 16:47 Uhr
Ich bin mir nicht sicher, wie dies für die Frage von OP relevant ist.
– Julia
8. März 2021 um 15:21 Uhr
Ich habe die gleiche Nachricht erhalten, Objekt Objekt.
– Yurayurayura
9. März 2021 um 16:47 Uhr
11456500cookie-checkjquery ajax data zeigt [object Object]yes
Was bekommen Sie, wenn Sie verwenden
alert(data);
?– Felix Klinge
5. August 2013 um 16:24 Uhr
Der Server hat XML zurückgesendet, jQuery hat dann besagtes XML geparst. Was Sie haben, ist ein XML-Dokument. Versuchen
console.log(data)
– Kevin B
5. August 2013 um 16:24 Uhr
Ich bekomme
success
wenn ich Daten alarmiere– Tauhid
5. August 2013 um 16:27 Uhr
Dann gibt Ihr Server nicht das zurück, was Sie denken, oder das Problem liegt an etwas, das nicht in Ihrem obigen Code enthalten ist.
– Kevin B
5. August 2013 um 16:33 Uhr
Ich bin mir nicht sicher, ob das die Ursache war, aber ich habe den obigen Code geändert, um meinen Code widerzuspiegeln
– Tauhid
5. August 2013 um 16:40 Uhr