【发布时间】:2019-07-19 17:46:15
【问题描述】:
我有一个获取 json 输入的 GET api。当我在失眠症中测试请求时效果很好,但在测试后我从失眠症中生成 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?
【问题讨论】:
-
为什么这个标签是
jquery? -
也不适用于 jquery @Andreas
-
.send( data )表示您希望将数据作为请求的主体发送。但是大多数服务器不处理 GET 请求中的请求正文,因为规范声明 GET 请求返回 URL 描述的资源,正文无关紧要。因此,如果您需要随请求发送数据,则不能使用 GET(改为使用 POST),或者您必须在 URL 中以查询字符串的形式发送数据,如下面的答案之一所示。
标签: javascript jquery ajax rest api