Ajax repsonse gibt: [Object object] zurück

Hi Quaese,

in das data steht das was ich via:
Javascript:
$.each()
zusammenbaue.

die ganz Funktion innerhalb des Plugins - so zusagen - sieht folgendermassen aus:

Javascript:
function doXML() {
  var url;
  var data = {};
   
  $.each($('#overLayTab tr').not('.trForward, .gapTr, .hdlnGap, .trGreetings, .trMail'), function() {
  data[$(this).find('td:nth-child(1)').text()] = $(this).find('td:nth-child(2)').text();
  });
  $.ajax({
  type: "POST",
  url: 'createXml/xxx.jsp?temp=',
  beforeSend: function() {
  $.each(data, function(key, value) {
  console.log(key + ':' + value);
  });
  },
  dataType: "json",
  data: data
  })
  .done(function() {
  alert( "success" );
   
  })
  .fail(function(data, status, error) {
  alert(data.responseText);
  alert(error);
  })
  .always(function() {
  alert( "complete" );
  window.open(url, 'xml', 'width=500, height=700,scrollbars=yes,directories=no,menubar=no,toolbar=no,location=no');
  });
  };

und die Daten für data werden dynamisch aus einer Tabelle (in einem overLayer/PopUp angezeigt) geholt, der Inhalt dieser Tabelle wird auch dynamisch generiert.
in jedem tableRow (tr), gibt es zwei tableData (td):

In einem td, gibt es den Key, und im anderen habe ich dessen Wert.... das hast Du scohn geahnt und rausgefunden. ;-)

Die Tabelle die dynamisch generiert wird ist angehängt.

1000 Dank!
Messmar
 

Anhänge

  • generated_table.zip
    942 Bytes · Aufrufe: 6
Hi,

wenn ich es in meinem Testdokument nachstelle, funktioniert es tadellos.

Vielleicht ist dein JSON-String, der im Ajax-Request zurückgeliefert wird, nicht valide. Versuch es doch zunächst mit einem einfachen JSON-String, von dem du weißt, dass er valide ist. Damit kannst du die Fehlerquellen weiter eingrenzen.

Ciao
Quaese
 
Morgne!

Es ist richtig wie Du es erwähnt hast...

Nun bei der URL erhalte ich Folgendes:
Code:
http://localhost:8080/yyy/configTemp/createXml/xxx.jsp?temp=[object%20Object]
Ich brauche die Werte angehängt, um sie dann in der: xxx.jsp zu bearbeiten und daraus ein XML Dokument erstellen zu können.

Wenn ich es versuche zu parsen:
Javascript:
$parseJSON()
, dann erhalte ich den, in den vorherigen Postings, erwähnten Fehler.

Das wie ein Teufelskreis und ich bin mir ziemlich sicher, dass ich an irgendeiner Stelle einen Dreher habe.

Gruß
Messmer
 
Hi all,

gefixt... ich hatte einen Denkfehler und zwar das erwartete Formal für die Datei die den Response bearbeiten sollte, hätte nicht: json sein sollte, sondern:
xml oder text.
Javascript:
dataType: "text",

jetzt passt es.... nun schicke ich den response an einem new window und möchte ich es dor öffnen. Es soll ein XML Dokument sein. Soweit so gut.

Javascript:
var url = 'createXml/xxx.jsp';
var data = {};
  
  $.each($('#overLayTab tr').not('.trForward, .gapTr, .hdlnGap, .trGreetings, .trMail'), function() {
  data[$(this).find('td:nth-child(1)').text()] = $(this).find('td:nth-child(2)').text();
  });
  
  $.ajax({
  type: "POST",
  url: url,
  beforeSend: function() {
  $.each(data, function(key, value) {
  console.log(key + ':' + value);
  });
  },
  dataType: "text",
  data: data
})
.done(function(data) {
  alert( "success" );
  var win = window.open('about:blank', 'xml', 'width=500, height=700,scrollbars=yes,directories=no,menubar=no,toolbar=no,location=no');
  with(win.document){
  open();
  write(data);
  close();
  }
})

Das: about:blank in dem open.window ist damit ich nicht noch einen zweiten Request an das neue Window-Object schicke.
Das newWindow wird geöffnet, aber leider leer, obgleich, wenn ich mir den source-code anschaue, steht folgendes:

Code:
<?xml version="1.0" encoding="UTF-8"?>”." class="error"><template-config version="1" xmlns="http://xspf.org/ns/0/"><title>Template Config</title><setting><template><elem>Firmenlogo</elem><elem>Schriftfarbe_Text</elem><elem>Schriftart</elem><elem>Button_CTA_Schriftfarbe</elem>...</template-config>

Gruß
Messmar
 
Hallo zusammen,

Update:

Das Issue hat sich erledigt bzw. wurde gefixt.

Beim new window ist der DocumentType standradmäßig HTML und keine XML und daher wurde die XML Datei nicht als soche auch dargestellt.

Man kann auch das documentType in dem neuen Window Fenster nicht einfach beeinflussen und als XML
festlegen (zumindest was die Google-Suche ausgegeben hat):
Javascript:
open('data:text/xml')
(wenn ich hier falsch liege, dann bitte korrigieren ;-)

Da es vom allgemeinen Interesse ist/sein könnte, hierbei der Fix:

Als Lösung habe ich mir in ein new Window, der JSON Response abfängt und via JavaScript/form (hidden) die Daten an einer JSP Datei abschickt.. diese macht aus den JSON Daten ein XML File.

Danke für euere Hilfe!
Messmar
 

Neue Beiträge

Zurück