发请求终于不用jquery了

21 篇文章 0 订阅
15 篇文章 0 订阅

fetch 方法是现代Web开发中一个非常重要的功能,用于从服务器异步获取资源。它是JavaScript语言的一部分,广泛应用于浏览器环境和一些支持Fetch API的Node.js环境中。fetch 提供了一个更强大、灵活且 promise-based 的方式来处理网络请求,相比传统的 XMLHttpRequest(XHR)而言,它更加简洁易用,并且支持更多的现代网络特性。

基本语法

fetch(url, [options])
  • url (string): 要请求的资源的URL。
  • options (Object, 可选): 一个可选的对象,包含发起请求时的一系列选项,如HTTP方法、请求头、请求体等。

Options 参数

  • method (string, 默认 'GET'): 请求的方法,如 'GET', 'POST', 'PUT', 'DELETE' 等。
  • headers (Object): 请求头对象,用于设置HTTP请求头。
  • body (string|Blob|FormData|URLSearchParams|ReadableStream, 可选): 请求主体,用于POST、PUT等方法发送数据。
  • mode (string, 默认 'cors'): 请求的模式,如 'cors', 'no-cors', 'same-origin'
  • credentials (string, 默认 'omit'): 用于控制请求是否带上cookie,可选值有 'omit', 'same-origin', 'include'
  • cache (string, 默认 'default'): 缓存行为,如 'default', 'no-store', 'reload', 'no-cache', 'force-cache', 'only-if-cached'
  • redirect (string, 默认 'follow'): 重定向行为,如 'follow', 'error', 'manual'
  • referrerPolicy (string, 默认 'no-referrer-when-downgrade'): 控制Referrer的策略。

返回值

fetch() 方法返回一个 Promise,该Promise在请求完成时解析为 Response 对象,无论请求成功还是失败。这意味着你通常需要使用.then().catch()或async/await来处理响应和错误。

示例

GET 请求
fetch('https://api.example.com/data')
  .then(response => {
    if (!response.ok) {
      throw new Error('Network response was not ok');
    }
    return response.json(); // 解析JSON格式的响应体
  })
  .then(data => console.log(data))
  .catch(error => console.error('There was a problem with the fetch operation:', error));
POST 请求
fetch('https://api.example.com/data', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ key: 'value' }) // 发送JSON格式的数据
})
.then(response => response.text())
.then(data => console.log('Success:', data))
.catch((error) => console.error('Error:', error));

注意事项

  • fetch 不会自动处理重定向或错误状态,即使HTTP状态码为404或500,也会解析为一个成功的Response对象,因此需要手动检查 response.ok 属性或状态码。
  • 使用 response.json(), response.text(), response.blob(), response.formData() 等方法来处理不同类型的响应体。
  • 对于跨域请求,服务器需要正确设置CORS(跨源资源共享)头,否则请求可能失败。

总之,fetch 方法以其现代化、灵活且基于Promise的API,极大地简化了前端与后端之间的数据交互过程。

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

svygh123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值