Hoe parameters doorgeven in $ajax POST?

Ik heb de tutorial gevolgd zoals aangegeven in deze link. In de onderstaande code worden om de een of andere reden de gegevens niet als parameters aan de url toegevoegd, maar als ik ze direct in de url zet met /?field1="hello" werkt het wel.

$.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");
        }
    }); 
Oplossing

Ik zou je aanraden om gebruik te maken van de $.post of $.get syntaxis van jQuery voor eenvoudige gevallen:

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

Als je de fail gevallen moet opvangen, doe dan dit:

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

Bovendien, als je altijd een JSON string stuurt, kan je $.getJSON of $.post gebruiken met nog een parameter helemaal op het einde.

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

Probeer de 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
});

Je kan geen parameters zien in de URL met de POST methode.

Bewerken:

Deprecation Notice: De jqXHR.success(), jqXHR.error(), en jqXHR.complete() callbacks zijn verwijderd met ingang van jQuery 3.0. U kunt gebruik maken van jqXHR.done(), jqXHR.fail(), en jqXHR.always() gebruiken.

Commentaren (0)

In een POST verzoek worden de parameters in de body van het verzoek verzonden, dat'is waarom u ze niet in de URL ziet.

Als je ze wilt zien, verander dan

    type: 'POST',

in

    type: 'GET',

Merk op dat browsers ontwikkeltools hebben waarmee je de complete requests kunt zien die je code uitgeeft. In Chrome, het'is in de "Network" paneel.

Commentaren (0)