$ajax POST içinde parametreler nasıl geçirilir?

Bu]1 bağlantıda belirtildiği gibi öğreticiyi takip ettim. Aşağıdaki kodda bazı nedenlerden dolayı veriler url'ye parametre olarak eklenmiyor, ancak bunları /?field1="hello" kullanarak doğrudan url'ye ayarlarsam çalışıyor.

$.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");
        }
    }); 
Çözüm

Basit durumlar için jQuery'nin $.post veya $.get sözdizimini kullanmanızı tavsiye ederim:

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

Başarısız durumları yakalamanız gerekiyorsa, bunu yapın:

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

Ayrıca, her zaman bir JSON dizesi gönderiyorsanız, $.getJSON veya en sonunda bir parametre daha olan $.post kullanabilirsiniz.

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

GET yöntemini kullanmayı deneyin,

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

POST yöntemi ile URL'de parametreleri göremezsiniz.

Düzenle:

Deprecation Notice: jqXHR.success(), jqXHR.error() ve jqXHR.complete() geri çağrıları jQuery 3.0'dan itibaren kaldırılmıştır. Kullanabilirsiniz bunun yerine jqXHR.done(), jqXHR.fail() ve jqXHR.always().

Yorumlar (0)

POST isteğinde]1, parametreler isteğin gövdesinde gönderilir, bu yüzden onları URL'de göremezsiniz.

Eğer onları görmek istiyorsanız, değiştirin

    type: 'POST',

için

    type: 'GET',

Tarayıcıların, kodunuzun yayınladığı isteklerin tamamını görmenizi sağlayan geliştirme araçlarına sahip olduğunu unutmayın. Chrome'da bu araç "Ağ" panelindedir.

Yorumlar (0)