javascript - 使用 fetch 发送带有数据对象的 get 请求

标签 javascript ajax fetch-api

我在一个项目中使用 Fetch ( Fetch API ),出于一致性的目的,我想创建一个函数来接收所有参数,例如方法、url 和数据,并创建正确的请求,具体取决于它是否是GET 或 POST 请求。

是否可以使用 Fetch 发送一个数据对象,该数据对象用于 GET 请求,将数据转换为带参数的字符串,如果是 POST 请求,则只发送正文中的数据对象?

看起来像这样:

fetch ('/test', {
        method: 'GET',
        data: {
           test: 'test'
        }
});

这个疑问是受这个 jQuery ajax 行为的启发:

$.ajax({
   url: '/test',
   method: 'GET',
   data: {
      test: 'test'
   }
});

这会产生这个请求:

'/test/?test=test'

最佳答案

If I pass the data object as normal in the fetch constructor for a GET request, would it send the request like the example I gave '/test/?test=test'

如果要将查询字符串添加到获取请求中:

From the SPEC

var url = new URL("https://a.com/method"),
params = {a:1, b:2}
Object.keys(params).forEach(key => url.searchParams.append(key, params[key]))
fetch(url)

这将产生一个请求:

enter image description here

关于javascript - 使用 fetch 发送带有数据对象的 get 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39245994/

相关文章:

javascript - 哪些字符对 JavaScript 变量名有效?

Javascript - 使用 getElementsByClassName 删除一个元素

ajax - 如何取消/中止 jQuery AJAX 请求?

javascript - 带有类似于 shell 命令行完成的 TAB 完成/自动填充的 Ajax 自动完成(或自动建议)?

javascript - 获取 : I see the response in the DevTools but Fetch still gives me an "Access-Control-Allow-Origin" issue for GET

javascript - 如何修复 Fetch API 中的 CORS 问题

javascript - 减慢 Django Web 应用程序中 Vue.js 更新方法中的请求速率

php - 设计分页界面的最佳方式

ajax - 如何触发a h :inputHidden by JavaScript的变化

javascript - 在 React 中使用 Fetch 渲染列表