繁体   English   中英

如何在GET API中发送JSON数据?

[英]how to send JSON data in a GET api?

我有一个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有什么原因吗?

您可以使用QueryString将数据发送到GET请求

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

我感谢@Shilly找到了答案。 GET请求没有正文。 因此无法通过POST请求中的方式发送JSON数据。 解决简单的json输入(例如数组)的方法是将请求查询像这样放置:

http://siteurl.com/api-get?arr[]=value1&arr[]=value2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM