Fetch是什么以及对他的理解

Fetch API是基于Promise实现的获取远端数据的方式,可以这么理解Fetch 就是XMLHttpRequest的升级版。

fetch(url)
.then(function(res){
  
})
.then(function(data){
  
})

典型用法:

fetch('http://192.168.101.100')
.then(function(res){
    // res.text()和res.json() 返回值都是个Promise对象,我们一般将其值返回,在下一个then中接受数据
    // 获取响应的信息,转成文本格式的Promise对象
    return res.text();
    // 获取响应的信息,转成json格式的Promise对象
    // return res.json();
})
.then(function(data){
  	console.log(data);
})

其实fetch(),可以有第二个参数,传入一些其它配置项,参数类型为对象:

fetch(url, options)

第二个参数:options对象,包括:

  • method: 请求使用的方法,如 GETPOST
  • headers: 请求的头信息,形式为 Headers 的对象或包含 ByteString 值的对象字面量。
  • body: 请求的 body 信息:可能是一个 BlobBufferSourceFormDataURLSearchParams 或者 USVString 对象。注意 GET 或 HEAD 方法的请求不能包含 body 信息。
  • mode: 请求的模式,如 cors、 no-cors 或者 same-origin。
  • credentials: 请求的 credentials,如 omitsame-origin 或者 include。为了在当前域名内自动发送 cookie , 必须提供这个选项, 从 Chrome 50 开始, 这个属性也可以接受 FederatedCredential 实例或是一个 PasswordCredential 实例。
  • cache: 请求的 cache 模式: defaultno-store 、 reload 、 no-cache 、 force-cache或者 only-if-cached 。
  • redirect: 可用的 redirect 模式: follow (自动重定向), error (如果产生重定向将自动终止并且抛出一个错误), 或者 manual (手动处理重定向). 在Chrome中,Chrome 47之前的默认值是 follow,从 Chrome 47开始是 manual。
  • referrer: 一个 USVString ,可以是 no-referrerclient或一个URL。默认是 client
  • referrerPolicy: Specifies the value of the referer HTTP header. May be one of no-referrer、 no-referrer-when-downgrade、 origin、 origin-when-cross-origin、 unsafe-url 。
  • integrity: 包括请求的 subresource integrity 值 ( 例如: sha256-BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=)。

上面诸多options中,其实常用的就是methodheadersbody以及mode等。

// get请求
fetch('/test2?name=哈哈')
// 默认是GET请求,直接使用querystring方式传参
.then(res =>{
  return res.text();
})
.then(data=>{
  console.log(data);
})
// delete请求
fetch('/test2', {
  // 发送delete请求
  method: 'DELETE'
})
  .then(res =>{
  return res.text();
})
  .then(data=>{
  console.log(data);
})
// POST 请求
// POST 请求传参的方式比较多 这里只是其中一种
fetch('/test', {
  method: 'POST',
  // 传递的数据主体
  body: 'name=哈哈&age=18',
  headers: {
    // 必须传
    'content-type': 'application/x-www-form-urlencoded'
  }
})
  .then(res =>{
  return res.json();
})
  .then(data=>{
  console.log(data);
})
// put请求  传参方式一样,不过一般put方式用在restful风格的接口上,一般url地址会比较特殊
fetch('/test', {
  method: 'PUT',
  body: 'name=哈哈&age=18',
  headers: {
    // 必须传
    'content-type': 'application/x-www-form-urlencoded'
  }
})
  .then(res =>{
  return res.json();
})
  .then(data=>{
  console.log(data);
})
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
mysqli_fetch_all() 函数是在 PHP 中用于从数据库中获取所有查询结果的函数。它返回一个包含查询结果的二维数组。 通常来说,使用mysqli_fetch_all()函数会返回一个以索引数组为基础的二维数组,其中每个子数组包含一条查询结果的数据。 但是,在加上MYSQLI_ASSOC参数后,mysqli_fetch_all()函数将返回一个以键值对为基础的二维数组,其中每个子数组的键名是数据库字段的名称,键值是对应字段的值。这样的格式更易于理解和操作查询结果。 以下是一个使用mysqli_fetch_all()函数返回键值对的示例: ``` $link = mysqli_connect("localhost", "username", "password", "database"); $query = "SELECT * FROM users"; $result = mysqli_query($link, $query); if ($result) { $rows = mysqli_fetch_all($result, MYSQLI_ASSOC); foreach ($rows as $row) { echo "用户ID: " . $row['id'] . "<br>"; echo "用户名: " . $row['username'] . "<br>"; echo "邮箱: " . $row['email'] . "<br>"; echo "----------------------<br>"; } } else { echo "查询失败"; } mysqli_close($link); ``` 在上面的例子中,我们连接到数据库,执行查询语句并保存结果到变量$result。然后,我们使用mysqli_fetch_all()函数将结果转换为键值对的二维数组,并使用foreach循环遍历该数组。在循环中,我们可以通过键名来访问和打印每个数据库字段的值。 这样,我们就可以方便地访问和操作查询结果中的数据,而无需手动提取和处理每个字段的值。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值