Skip to content
霞露小伙 — HfWang
On this page

中断 http 请求

xhr

js
const xhr = new XMLHttpRequest(),
  method = 'GET',
  url = "'https://xxxxxxxxxxxxxxxxxxxxxxxxx'"
xhr.open(method, url, true)

xhr.send({ age: 90 })
xhr.onreadystatechange = (state) => {
  if (xhr.readyState === 4 && xhr.status === 200) {
    // do something
    console.log(xhr.responseText)
  }
}

// 中断操作
xhr.abort()

axios

js
const CancelToken = axios.CancelToken
const source = CancelToken.source()

axios
  .get('https://xxxxxxxxxxxxxxxxxxxxxxxxx', {
    cancelToken: source.token,
  })
  .catch(function (thrown) {
    // 判断请求是否已中止
    if (axios.isCancel(thrown)) {
      // 参数 thrown 是自定义的信息
      console.log('Request canceled', thrown.message)
    } else {
      // 处理错误
    }
  })

// 取消请求(message 参数是可选的)
source.cancel('Operation canceled by the user.')

fetch

js
// 中断。。。
const controller = new AbortController()
let signal = controller.signal
console.log('signal 的初始状态: ', signal)

function fetchVideo() {
  //...
  fetch('https://xxxxxxxxxxxxxxxxxxxxxxxxx', { signal })
    .then((res) => {
      //...
    })
    .catch((e) => {
      console.log(e.message)
    })
}

// 中断操作
controller.abort()

本站中引用到的其他资料,如有侵权,请联系本人删除