Як передати параметри в $ajax POST?

Я пішов за інструкцією, як зазначено в цьому посиланні. У наведеному нижче коді чомусь дані не додаються до url як параметри, але якщо я задаю їх безпосередньо в url за допомогою /?field1="hello", то все працює.

$.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");
        }
    }); 
Рішення

Для простих випадків рекомендую використовувати синтаксис jQuery $.post або $.get:

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

Якщо вам потрібно перехопити помилкові випадки, просто зробіть це:

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

Додатково, якщо ви завжди відправляєте JSON-рядок, ви можете використовувати $.getJSON або $.post з ще одним параметром в самому кінці.

$.post('superman', { field1: "hello", field2 : "hello2"}, 
     function(returnedData){
        console.log(returnedData);
}, 'json');
Коментарі (3)

Спробуйте скористатися методом GET,

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

Неможливо побачити параметри в URL з методом POST.

Відредагуйте:

Повідомлення про застереження: Функції зворотного виклику jqXHR.success(), jqXHR.error() та jqXHR.complete() видалені починаючи з версії jQuery 3.0. Ви можете використовувати jqXHR.done(), jqXHR.fail() та jqXHR.always() замість них.

Коментарі (0)

У POST-запиті параметри передаються в тілі запиту, тому в URL-адресі ви їх не побачите.

Якщо ви хочете їх побачити, змініть

    type: 'POST',

на

    type: 'GET',

Зверніть увагу, що браузери мають інструменти розробки, які дозволяють бачити повні запити, які видає ваш код. У Chrome вони знаходяться на панелі "Мережа".

Коментарі (0)