如何发送POST请求以从网址接收数据?

时间:2019-07-07 23:15:56

标签: javascript html post request fetch

我需要使用纯JavaScript向url发送POST提取请求。我需要在我的代码中添加一个看起来像这样的对象:maxKey,但是我不知道在哪里,如何包括它或如何开始。我对Js还是很陌生,希望在此任务上获得一些帮助。

这是我的表格的html代码:

maxValue

这是我用于显示数据的js代码:

var data = {task: ”getall"}

从理论上讲,我应该接收可以在开发人员工具网络选项中看到的数据,并且应该将这些数据显示在表格的HTML页面中。

2 个答案:

答案 0 :(得分:2)

您需要学习的是创建称为“ AJAX请求”的东西。用谷歌搜索的第一个教程转到了此链接:https://www.w3schools.com/xml/ajax_intro.asp,这是不错的介绍,但是我想您需要阅读更多的内容。

从本质上讲,您需要阅读以下关键字:XMLHttpRequest和AJAX可以带您深入了解该概念。然后,下一步就是要知道称为“提取API”(https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API

的新API。

如果您不熟悉JS,这可能是您第一次使用称为“异步API”的东西。这样的想法是,您不要在“一劳永逸”的情况下“调用函数”和“获得结果”。相反,您要做的是:

  1. 您发出请求以执行某项操作(从服务器获取数据)-通过创建XMLHttpRequest()对象(请阅读教程)来完成此操作。
  2. 您告诉您的REQUEST对象“嘿,完成后,调用我的函数gotData()”
  3. 然后您的代码完成或执行其他操作,例如显示进度指示器或“请稍候”。
  4. 稍后,当浏览器执行GET / POST /执行其他操作并为您获取数据时,它将调用您的“ gotData()”函数。

...如果一开始看起来很困难-不要放弃,这确实是一种非常重要的编程模式,可以理解,以后您将越来越多地看到它。

希望有帮助!

答案 1 :(得分:0)

尝试这样的事情:

//Promise way
const postData = {task: "getall"};

fetch('https://api.github.com/gists', {
    method: 'post',
    body: JSON.stringify(postData)
}).then(function(response) {
  return response.json();
}).then(function(data) {
  console.log('Response:', data);
});


//Async await
async function fetchData() {
  const response = await fetch('https://api.github.com/gists', {
      method: 'post',
      body: JSON.stringify(postData)
  });

  const json = await response.json();

  console.log(json)
}

fetchData();