H5如何中断已经发出去的网络请求

umi 项目中默认的请求库是umi-request,因此我们可以使用umi-request提供的方法来中止请求。另外,在umi项目中可以搭配使用了dva,因此下面简单介绍下在dva中使用CancelToken中止请求的流程。Fetch 是 Web 提供的一个用于获取资源的接口,如果要终止 fetch 请求,则可以使用 Web 提供的 AbortController 接口。abort():终止一个尚未完成的Web(网络)请求,它能够终止 fetch 请求,任何响应Body的消费者和流。Fetch 中断请求。
摘要由CSDN通过智能技术生成

一、AbortController

AbortController[3] 接口表示一个控制器对象,可以根据需要终止一个或多个Web请求。

AbortController():AbortController()构造函数创建一个新的 AbortController 对象实例

signal:signal 属性返回一个 AbortSignal 对象实例,它可以用来 with/about 一个Web(网络)请求

abort():终止一个尚未完成的Web(网络)请求,它能够终止 fetch 请求,任何响应Body的消费者和流

Fetch 中断请求

Fetch 是 Web 提供的一个用于获取资源的接口,如果要终止 fetch 请求,则可以使用 Web 提供的 AbortController 接口。

首先我们使用 AbortController() 构造函数创建一个控制器,然后使用 AbortController.signal 属性获取其关联 AbortSignal 对象的引用。当一个 fetch request 初始化时,我们把 AbortSignal 作为一个选项传递到请求对象 (如下:{signal}) 。这将信号和控制器与获取请求相关联,然后允许我们通过调用 AbortController.abort() 中止请求。

const controller = new AbortController();
let signal = controller.signal;
 console.log('signal 的初始状态: ', signal);

const downloadBtn = document.querySelector('.download');
const abortBtn 
  • 15
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 当通过Vue H5重新发版后,如果在请求页面时出现"unexpected token <"的错误,通常是因为服务器返回的响应数据不是预期的JSON格式,而是以HTML格式返回。造成这个问题的原因可能是服务器没有正确设置或解析请求,或者请求的地址错误。 为了解决这个问题,首先需要确认请求的地址是否正确,确保请求的是正确的页面。如果确认无误,那么可以尝试以下几种解决方法: 1. 确保服务器返回的响应数据是正确的JSON格式。可以通过后端开发人员检查服务器接口的代码和返回数据,确保接口返回的数据是JSON格式,而不是HTML格式。 2. 检查请求头部,确保正确设置请求头部的Content-Type为"application/json",以确保服务器正确解析请求。 3. 使用开发者工具查看该请求的响应内容。如果响应内容中包含了HTML标签,可能意味着服务器返回了错误的数据。可以通过查看响应的内容和状态码,进一步分析具体的问题。 4. 确定本地的开发环境和服务器的环境配置是否一致,例如确保使用相同的Vue版本、组件版本、构建工具和依赖项版本。 5. 如果以上方法都无效,可以尝试清除浏览器缓存并重新加载页面,或者重启开发服务器,以确保获取最新的代码和资源。 综上所述,当Vue H5重新发版之后请求页面出现"unexpected token <"的错误时,需要检查服务器返回的数据是否为预期的JSON格式,并确认请求地址和头部的设置是否正确。如有必要,还可以尝试清除缓存和重新加载页面等操作。如果问题依然存在,可能需要进一步排查其他可能的原因。 ### 回答2: 在Vue H5重新发版之后,遇到请求页面出现"unexpected token <"的错误,通常是由于代码中存在语法错误或引入的资源路径错误导致的。 首先,可以检查代码中是否存在错误的语法,比如漏写分号、括号不匹配等。这些常见的语法错误可能会导致浏览器无法正确解析页面,从而报错。 其次,需要检查引入的资源路径是否正确。在Vue H5中,可能会涉及到引入图片、样式表、JavaScript文件等资源。如果路径不正确,浏览器无法正确找到这些资源,从而导致错误的发生。可以使用相对路径或绝对路径来引入资源,确保路径的正确性。 此外,还需要注意保持代码的兼容性。不同的浏览器和设备对于HTML、CSS和JavaScript的解析和支持可能存在差异。尽量使用符合标准的代码,避免使用一些不被广泛支持的特性或语法。 如果以上方法仍然无法解决问题,可以尝试在控制台查看详细的错误信息,从中获取更多的线索。常见的浏览器控制台包括Chrome的开发者工具和Firefox的Firebug。 总之,在重新发版后出现"unexpected token <"错误,需要逐一检查代码中的语法错误、资源路径错误以及兼容性问题,通过排除错误的可能原因逐步解决问题。如果仍然无法解决,可以通过其他调试工具或咨询社区或专家来获取更多的帮助。 ### 回答3: 当使用Vue开发H5应用程序时,遇到“unexpected token <”错误的原因通常是因为在重新发行版本后,浏览器在请求页面时收到了不正确的响应。这通常是因为服务器没有正确地配置或返回正确的内容。 首先,我们需要确保重新发版后的服务器配置正确。我们可以检查服务器的静态文件服务配置,确保正确地将请求路由到正确的文件或目录。 其次,该错误可能是由前端路由配置错误引起的。我们可以检查应用程序的路由设置,确保路径和组件名称正确,并且没有拼写错误或缺失。 另外,还有一种可能是发行版本中打包的HTML文件出了问题。我们可以尝试重新构建或重新发布应用程序,确保HTML文件没有被损坏或缺少内容。 最后,如果以上步骤都没有解决问题,我们可以在浏览器的开发者工具中检查网络请求和响应。这将帮助我们更深入地了解发生错误的具体原因,并确定下一步的解决方案。 总而言之,当遇到“unexpected token <”错误时,我们应该检查服务器配置、前端路由设置和HTML文件是否正确,并使用浏览器开发者工具来进一步调试和解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

eshineLau

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

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

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

打赏作者

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

抵扣说明:

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

余额充值