Как отправить данные JSON в GET API? - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть GET API, который получает входные данные в JSON.когда я тестирую запрос в бессоннице, который работает хорошо, но после тестирования я генерирую код jquery из бессонницы и вставляю его в консоль Chrome.это код:

var data = JSON.stringify({
  "tags": [
    100
  ]
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "http://localhost/panel-api-backend/public/api/foods");
xhr.setRequestHeader("content-type", "application/json");

xhr.send(data);

, когда я получаю ответ, кажется, что ввод (поле tags) не отправлено API.когда я меняю глагол запроса на POST.все отлично.есть ли причина, по которой javascript не может отправлять входные данные JSON API-интерфейсам?

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Я нашел ответ благодаря @Shilly.У запросов GET нет тела.поэтому невозможно отправить данные JSON, если мы отправим их в запросе POST.Решение простых входных данных json, таких как массив, состоит в том, чтобы поставить им запрос запроса следующим образом:

http://siteurl.com/api-get?arr[]=value1&arr[]=value2
0 голосов
/ 26 февраля 2019

Вы можете отправить данные в запрос GET с помощью QueryString

var tags=[100,200];

$.ajax({
      url:`yoururl?tags=${tags}`,
      type:'GET',
      success:function(response){
        console.log(response);
      },
      error:function(err){

      }
    });

Вы также можете отправить так:

var tags=JSON.stringify({"tags":[100,200]});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...