Wie man Parameter in $ajax POST übergeben?

Ich habe das Tutorial wie in diesem Link angegeben gefolgt. Im folgenden Code werden die Daten aus irgendeinem Grund nicht als Parameter an die URL angehängt, aber wenn ich sie direkt in die URL mit "/?field1="hello"`" einfüge, funktioniert es.

$.ajax({
        url: 'superman',
        type: 'POST',
        data: { field1: "hello", field2 : "hello2"} ,
        contentType: 'application/json; charset=utf-8',
        success: function (response) {
            alert(response.status);
        },
        error: function () {
            alert("error");
        }
    }); 
Lösung

Ich würde Ihnen empfehlen, für einfache Fälle die $.post oder $.get Syntax von jQuery zu verwenden:

$.post('superman', { field1: "hello", field2 : "hello2"}, 
    function(returnedData){
         console.log(returnedData);
});

Wenn Sie die fehlgeschlagenen Fälle abfangen müssen, tun Sie einfach dies:

$.post('superman', { field1: "hello", field2 : "hello2"}, 
    function(returnedData){
         console.log(returnedData);
}).fail(function(){
      console.log("error");
});

Wenn Sie immer einen JSON-String senden, können Sie auch $.getJSON oder $.post mit einem weiteren Parameter am Ende verwenden.

$.post('superman', { field1: "hello", field2 : "hello2"}, 
     function(returnedData){
        console.log(returnedData);
}, 'json');
Kommentare (3)

Versuchen Sie es mit der GET-Methode,

var request = $.ajax({
    url: 'url',
    type: 'GET',
    data: { field1: "hello", field2 : "hello2"} ,
    contentType: 'application/json; charset=utf-8'
});

request.done(function(data) {
      // your success code here
});

request.fail(function(jqXHR, textStatus) {
      // your failure code here
});

Bei der POST-Methode können Sie keine Parameter in der URL sehen.

Bearbeiten:

Hinweis zur Veraltung: Die jqXHR.success(), jqXHR.error(), und jqXHR.complete() Callbacks werden ab jQuery 3.0 entfernt. Sie können verwenden jqXHR.done(), jqXHR.fail() und jqXHR.always() stattdessen verwenden.

Kommentare (0)

Bei einer POST-Anfrage werden die Parameter im Hauptteil der Anfrage gesendet, deshalb sehen Sie sie nicht in der URL.

Wenn Sie sie sehen wollen, ändern Sie

    type: 'POST',

in

    type: 'GET',

Beachten Sie, dass die Browser über Entwicklungstools verfügen, mit denen Sie die vollständigen Anfragen sehen können, die Ihr Code auslöst. In Chrome befindet es sich im "Netzwerk" Panel.

Kommentare (0)