Komplexe Objekte per Ajax übergeben

tequila slammer

Erfahrenes Mitglied
Hallo Forum,

Ich möchte per Ajax ein "komplexes" Objekt übergeben. Ich habe mich dazu am Beispiel von http://encosia.com orientiert. Leider klappt es nicht, obwohl es eine elegante Lösung ist. Auf die json2.js wollte ich nach Möglichkeit verzichten.

Code:
        var person = new Object();
        person.Name = "Name1";
        person.LastName = "Lastname1";
        person.Parents[] = new Array();
        person.Parents[0] = person2;
        person.Parents[1] = person3;

        var parameters = "{person: '" + person + "'}";

        $.ajax({
            type: "POST",
            url: "http://localhost/Service.asmx/AddPerson",
            data: parameters,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
                alert("erfolgreich");
            },
            error: function(msg) {
                alert("nicht erfolgreich");
            }
        });

Ich habe mein Code noch einmal verändert. Nun bekomme ich "erfolgreich" aber in der Datenbank steht nichts drin.
Code:
        var testItem = "{'FirstName':'" + (param.split('|'))[0] + "','LastName':'" + (param.split('|'))[1] + "}";
        var parameters = "{'person: '" + testItem + "'}";
 
Zuletzt bearbeitet:
jQuery? Wie sieht es aus, wenn Du es type : post; übergibst? Dann kann es ja egal sein, wie Du das Objekt aufbereitest, Hauptsache, die Gegenstelle kann es verarbeiten..

mfg chmee

p.s.: Ups, wo war ich mit dem Kopf. da stehts doch..Ach ne, da war'n Edit von Dir..

(1) Edit macht kein Sinn, weil ich keine Message bekomme, dass Du was geändert hast und uU weitere Fragen hast.
 
Das mit dem Edit ist sinnlos (oben schon im ps geschrieben). Laß Dir doch mal ausgeben, was auf der Gegenseite passiert, gib in der php-Datei (wenns eine ist) ein paar Debug-Daten (variablen,Tätigkeiten) aus und speicher das Ergebnis in einer html/txt-Datei. Danach solltest Du schlauer sein, woran es liegt.

mfg chmee
 
Also die Maschine schreibt nichts weg. Ich denke mal das also nichts ankommt. Im IE bekomme ich auch weiterhin die "nicht erfolgreich" Nachricht.
 
Was heisst, die Maschine schreibt nichts weg? In die DB? In eine Datei? Wie ich es schon gesagt habe, Du gibst an den wichtigen Funktionsstellen per echo den Funktionsnamen an und zB die Variable (die gefüllt wird) aus. Diese Ausgabe lässt Du per ob_get_contents() in eine Variable werfen, welche Du dann per f_open speicherst.

Der Sinn dahinter ist, mitzuverfolgen, was ankommt, verarbeitet wird und was nicht passiert - weil Du quasi den Arbeitsverlauf des php-Scripts mitloggst.

mfg chmee
 
Hallo chmee,

es handelt sich um ein von mir geschriebener asp.net WebService. Meine Aussage bezog sich darauf, dass an der aufgerufenen Methode kein Objekt per Ajax ankommt, was ich per Debugging feststellen kann.
 
Zuletzt bearbeitet:
Dass IE "nicht erfolgreich" anzeigt, sollte man nochmal näher betrachten.
Hast Du für IE die IE Developer Bar installiert? Mal geschaut, was wie gesendet, ausgegeben, behandelt wird?

mfg chmee
 
ja Toolbar ist installiert. Allerdings bin ich in Ihrer Handhabung nicht sehr vertraut. Wo kann ich nachsehen, was übertragen wird? Der IE hat in diesem Fall allerdings recht, zwar meldet der FF Erfolg aber in der Datenbank steht nichts - somit ist es kein Erfolg.
 
Deswegen mach ich den IE bei JS-Fehlern (oder zur Kontrolle) gerne nochmal an, die Engine reagiert (wenn auch höchst simpel) recht empfindlich. Bei Firebug gibt es unter "Netzwerk"/"JS" und "XHR" die Infos. in der DeveloperBar, hmm, mal schauen. Alternativ dazu gibt es auch FirebugLite, welches man mit n bissel JS in die Seite mit einbaut.

mfg chmee
 
Ja wie gesagt im Moment stehe ich da auch auf dem Schlauch. Ich bin der festen Überzeugung, dass es an dem zu übergebenden Objekt liegt.
 

Neue Beiträge

Zurück