当前位置: 首页 > wzjs >正文

中国软件十大领军企业微信搜一搜排名优化

中国软件十大领军企业,微信搜一搜排名优化,广州开发网站平台,谷歌网站推广公司fetch() 是 JavaScript 用于发送 HTTP 请求的内置 API,功能强大,语法简洁。以下是 fetch 的语法规则及常见用法。 1. fetch 基本语法 fetch(url, options).then(response > response.json()) // 解析 JSON 响应体.then(data > console.log(data))…

fetch() 是 JavaScript 用于发送 HTTP 请求的内置 API,功能强大,语法简洁。以下是 fetch 的语法规则及常见用法。


1. fetch 基本语法

fetch(url, options).then(response => response.json()) // 解析 JSON 响应体.then(data => console.log(data))   // 处理数据.catch(error => console.error("Error:", error)); // 处理错误
  • url:请求的地址(必填)。
  • options:可选的请求配置对象(如 methodheadersbody 等)。

2. fetch 请求方法

(1)GET 请求

GET 请求用于获取数据,通常不需要 body

fetch("https://api.example.com/data").then(response => response.json()).then(data => console.log(data)).catch(error => console.error("Error:", error));

或带参数:

const params = new URLSearchParams({ id: 123, name: "Tom" });
fetch(`https://api.example.com/data?${params}`).then(response => response.json()).then(data => console.log(data));

(2)POST 请求

POST 用于发送数据,通常需要 bodyheaders

fetch("https://api.example.com/data", {method: "POST",headers: { "Content-Type": "application/json" },body: JSON.stringify({ id: 123, name: "Tom" })
})
.then(response => response.json())
.then(data => console.log(data));

(3)PUT / PATCH 请求(更新数据)

  • PUT:完整更新资源
  • PATCH:部分更新资源
fetch("https://api.example.com/user/123", {method: "PUT",headers: { "Content-Type": "application/json" },body: JSON.stringify({ name: "Updated Name" })
})
.then(response => response.json())
.then(data => console.log(data));

(4)DELETE 请求

DELETE 请求用于删除数据,通常不需要 body

fetch("https://api.example.com/user/123", {method: "DELETE"
})
.then(response => response.json())
.then(data => console.log(data));

3. fetch 选项(options)详解

fetch(url, {method: "POST", // 请求方法headers: { "Content-Type": "application/json" }, // 请求头body: JSON.stringify({ key: "value" }), // 请求体mode: "cors", // 跨域请求模式credentials: "include", // 携带 Cookiecache: "no-cache", // 缓存模式redirect: "follow" // 自动跟随重定向
})

常用 options 配置

配置项说明
method请求方法(GET、POST、PUT、DELETE、PATCH等)
headers请求头,例如 Content-TypeAuthorization
body发送的请求数据,通常为 JSON 或 FormData
modecors(跨域),same-origin(同源)
credentialsinclude(携带 Cookie),omit(不带 Cookie)
cacheno-cache(不缓存),reload(强制刷新)
redirectfollow(自动重定向),error(遇到重定向报错)

4. 处理响应(Response 对象)

fetch 返回的是一个 Promise,解析后得到 Response 对象:

fetch("https://api.example.com/data").then(response => {console.log(response.status);  // HTTP 状态码console.log(response.headers); // 响应头return response.json();        // 解析 JSON}).then(data => console.log(data));

Response 方法

方法作用
response.text()解析为文本格式
response.json()解析为 JSON
response.blob()解析为 Blob(二进制数据,如图片)
response.arrayBuffer()解析为 ArrayBuffer
response.formData()解析为 FormData

5. 处理错误

fetch 只有在网络错误时才会进入 catch,如果服务器返回 4xx 或 5xx 需要手动抛出异常:

fetch("https://api.example.com/data").then(response => {if (!response.ok) {throw new Error(`HTTP error! Status: ${response.status}`);}return response.json();}).then(data => console.log(data)).catch(error => console.error("Fetch error:", error));

6. async/await 方式

fetch 也可以和 async/await 搭配使用,使代码更清晰:

async function fetchData() {try {const response = await fetch("https://api.example.com/data");if (!response.ok) {throw new Error(`HTTP error! Status: ${response.status}`);}const data = await response.json();console.log(data);} catch (error) {console.error("Fetch error:", error);}
}fetchData();

7. 进阶用法

(1)携带 Cookie(跨域请求)

如果请求涉及跨域并需要携带 Cookie,必须设置 credentials

fetch("https://api.example.com/data", {method: "GET",credentials: "include" // 允许携带 Cookie
});

(2)上传文件

使用 FormData 进行文件上传:

const formData = new FormData();
formData.append("file", fileInput.files[0]);fetch("https://api.example.com/upload", {method: "POST",body: formData
})
.then(response => response.json())
.then(data => console.log(data));

(3)超时处理

fetch 本身不支持超时,需要用 Promise.race() 处理:

function fetchWithTimeout(url, timeout = 5000) {return Promise.race([fetch(url),new Promise((_, reject) =>setTimeout(() => reject(new Error("Request Timeout")), timeout))]);
}fetchWithTimeout("https://api.example.com/data").then(response => response.json()).then(data => console.log(data)).catch(error => console.error(error));

8. 总结

用法代码示例
基本 GETfetch(url).then(res => res.json()).then(console.log);
POST 发送 JSONfetch(url, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(data) })
处理错误fetch(url).then(res => { if (!res.ok) throw new Error(res.status); return res.json(); })
携带 Cookiefetch(url, { credentials: "include" })
上传文件fetch(url, { method: "POST", body: formData })
超时处理Promise.race([fetch(url), new Promise((_, r) => setTimeout(() => r(new Error("Timeout")), 5000))])
http://www.dtcms.com/wzjs/188881.html

相关文章:

  • 做网站需要交维护费么google play 安卓下载
  • 免费qq空间访客网站个人如何做seo推广
  • 考试系统 微网站是什么样的重庆百度开户
  • 公司网站首页模板网络营销企业案例分析
  • 宣传网站怎么做的百度建站多少钱
  • 交互式网站app南宁网站优化
  • 网站建设与网页设计大作业实体店怎么推广引流
  • 可视化软件开发工具抖音搜索引擎优化
  • 镜像网站怎么做关键词优化排名平台
  • 多媒体网站建设网络营销与传统营销有哪些区别
  • 佛山做网站-准度科技公司深圳优化公司高粱seo较
  • 阿克苏网站建设价格怎么买到精准客户的电话
  • 西安做网站哪家便宜常见的网络营销平台有哪些
  • 人才网站开发方案广告公司收费价格表
  • 做网站策划书文档整站seo优化哪家好
  • 网站优化都是怎么做的seo包年服务
  • 58做网站优化英文
  • 徐州建设工程交易平台潮州seo建站
  • 如何网站建设 需要详细的步骤昆明seo博客
  • 越南做网站服务器深圳搜索引擎优化推广便宜
  • 网站整改方案长春网站建设策划方案
  • 网站框架怎么建设宁波网站推广优化外包
  • 低价的网站建设百度手机版网页
  • 谷歌没收录网站主页 301重定向广东seo价格是多少钱
  • 个人做企业网站制作要多少钱威海seo优化公司
  • 福建 网站建设项目营销策划方案
  • 工程造价信息平台seo快排公司哪家好
  • 怎么删除网站里的死链接媒体代发布
  • app模板网站百度搜索推广产品
  • 清河做网站哪里好最成功的网络营销案例