ajax与fetch

Ajax的本质是使用XMLHttpRequest对象来请求数据
ajax的工作过程如下:
在这里插入图片描述

fetch 是全局量 window 的一个方法,它的主要特点有:

  1. 第一个参数是URL:
  2. 第二个是可选参数,可以控制不同配置的 init 对象
  3. 使用了 JavaScript Promises 来处理结果/回调:
// 链式处理,将异步变为类似单线程的写法:
高级用法. fetch('/some/url').then(function(response) { 
    return . //... 执行成功, 第1步...
}).then(function(returnedValue) { 
        // ... 执行成功, 第2步...
}).catch(function(err) {
// 中途任何地方出错...在此处理 :
}); 

fetch规范与jQuery.ajax()主要有两种方式的不同:

  1. 从 fetch()返回的 Promise 将不会拒绝HTTP错误状态, 即使响应是一个 HTTP 404 或 500。相反,它会正常解决 (其中ok状态设置为false), 并且仅在 网络故障时或任何阻止请求完成时,它才会拒绝。
  2. 默认情况下,fetch在服务端不会发送或接收任何 cookies, 如果站点依赖于维护一个用户会话,则导致未经认证的请求 ( 要发送 cookies,必须发送凭 据头). 如果想要在同域中自动发送cookie,加上 credentials 的 same-origin 选项 fetch(url, { credentials: ’same-origin’ }) same-origin值使得fetch处理Cookie与XMLHttpRequest类似。 否则,Cookie将不会被发送,导致这些请求不保留认证会话。
  3. 对于CORS请求,使用include值允许将凭据发送到其他域: fetch(url, { credentials: ‘include’ })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值