Ajax метод данных

У меня есть запрос ajax post, который должен отправить некоторые данные в формате array[integer] без параметров или ключей. К сожалению, браузер зависает по запросу каждый раз, когда я пытаюсь. У меня был успех в postman и в swagger, но я не могу понять, формат данных, необходимый для отправки этого массива без ключа.

Вот моя просьба:

$.ajax({
        type: "POST",
        url: "/endpoint?code=" + data,
        data: [1],
        success: function(response) {
           console.log(response);
        }.bind(this),
        error: function(xhr, status, err) {
            console.log(status + " " + err);
        }.bind(this)
    });

В моем Swagger документы следующие работы

curl -X POST --header "Content-Type: application/json" --header "Accept: application/json" -d "[1]" "http://url/endpoint?code=testing" 

В postman это выглядит так, как будто данные формы публикуют массив как ключ без значения.
Мне удалось реализовать это в браузере, но все равно не повезло.

Любая помощь была бы оценена, это кажется простым ответом на вопрос, но я не могу найти никаких решений.

2 ответа

  1. Вызовите JSON.stringifyи укажите contentTypeпараметр для указания этого заголовка.

    $.ajax({
        type: "POST",
        url: "/endpoint?code=" + data,
        data: JSON.stringify([1]),
        contentType: 'application/json',
        dataType: 'json',
        success: function(response) {
           console.log(response);
        }.bind(this),
        error: function(xhr, status, err) {
            console.log(status + " " + err);
        }.bind(this)
    });
    

    Кстати, вместо использования .bind(this)на каждой функции обратного вызова, вы можете использовать опциюcontext: this, чтобы передать его автоматически.