JavaScript jQuery.ajax, Daten per POSt senden

Bububoomt

ohne Vertrauen
ID: 10361
L
28 April 2006
19.666
769
Versuche mcih gerade in jQuery, wil es doch par nette sachen hat, vorlamme Plugins.

Habe nun ein Problem beim Ajax Aufruf als POST:
Code:
  j.ajax({
            url: '/ajax/HandleNew.aspx',
            type: 'POST',
            data: {daten:jsonDaten},
            dataType: 'json',
            contentType: "application/json; charset=utf-8",
            success: function(result) {
            }
        });
Ich bekomme keine Daten per POOST, die sind einfach nicht da. Nutze ich GET, dann habe ich den JSON-String. hat jemand eine Idee?
Ich kann mir den ganzen POST anschauen in meiner Entwicklungsumgebung (VS 2008), und da ist nix drin :(

Jemand eine idee wieso es per POST nicht geht, nur per GET?
 
Wo is nix drin? Sendet der Client nicht, oder empfängt der Server nicht?
Bzw. besteht das Problem beim Anfragen oder beim Antworten?
 
Siehe bild,

hmm das erste ist eine POST anfrage, die das flexigrid macht, das zweite ist das was nicht klappt. Was mich wundert, da steht kein Parameter.
 

Anhänge

  • firebug.PNG
    firebug.PNG
    19,8 KB · Aufrufe: 25
Hast Du überhaupt vor irgendwelche Daten zu senden, oder ist es tatsächlich nur eine Anfrage um existierende Daten abzufragen?
Falls letzteres zutrifft, was spricht dagegen, beim GET zu bleiben?

Das zum Einen...zum Anderen, wie wird die Anfrage in HandleNew.aspx behandelt? Kenn mich mit ASP nicht aus, meine Frage geht aber in Richtung $_POST und $_GET (aus PHP) wenn es dazu Entsprechungen in ASP geben sollte...
 
Ja, es werden Daten gesendet, die angelegt werden sollen. Das könnte u.U. später sogar recht viel sein, auch wenn noch überschaubar. Und auch wenn inzwischen ja recht viel (also lange Get-Url) von den Browsern unterstützt werden, sollte man bei sowas ja Post nutzen.

Bei ASP.Net gibt es Request.Querystring (~GET) und Request.Params(~POST).

Habs nun erstmal auf GET gestellt um weiter zu kommen.

muss idese Zeile bei Post vielelicht anders aussehen? Eigentlich nicht oder?
Code:
data: {daten:jsonDaten},
 
aus welchem Grund schickst du die Daten denn schon als JSON zum Server? Es ist vollkommen ausreichend nur die Antort als JSON zu senden.

Ich denke der Fehler wird in dem Code liegen wo du die Variable "jsonDaten" zusammenstellst
 
Du weißt doch was der Vorteil von JSON ist Stichwort Objekte.

Ohne JSON müßte ich an div stellen was ändern, wenn ich was ändere, mit, aber nur an wenigen, und an einigen Stellen spaar ich dann sogar einige Zeilen arbeit.

jsonDaten sollte richtig zusammengestellt sein, schließlich klappt es ja mit GET.
 
ohne Beispiel was wir uns ansehen können bleibe ich dabei, ich wage sehr stark zu bezweifeln, dass jQuery da einen Bug hat.
 
Code:
        handle["handle_alias"] = j("#handle_alias").val();
        var jsonHandle = j.toJSON(handle);

        j.ajax({
            url: '/ajax/HandleNew.aspx',
            type: 'POST',
            data: { daten: jsonHandle },
            dataType: 'json',
            contentType: "application/json; charset=utf-8",
            beforeSend: function() {


            },
            success: function(result) {
                /*
                alert(result.Result);
                $("#saveStatus").html(result.Result).show();
                */
            }
        });

Bei Get

Request.QueryString["daten"] hat den Inhalt:
{"handle_alias":"Test-Alias"}

Bei Post gibt es kein Request.Params["daten"]

Also genau wie das oben steht habe ichs getestet, um sicher zu gehen, das da kein Fehler im JSON ist. Wie gesagt die nicht abgespeckte Version läuft mit GET ohne Probleme.
 
Habe das nur in der Entwicklungsumgebung drin.

toJSON nutzt JSON.stringify sofern vorhanden


*edit*
"Lösung" gefunden, wenn ich den contentType weglasse klappt es, scheinbar kann ich bei dem angegebenen Contenttype nicht per Request.Params drauf zugreifen, sondern müßte anders machen. Habs daher nun entfernt (keine Lust zu suchen wie ichs damit machen müßte).
 
Zuletzt bearbeitet: