gpt4 book ai didi

javascript - XMLHttpRequest 检测 404(未找到)

转载 作者:行者123 更新时间:2023-11-29 16:09:12 25 4
gpt4 key购买 nike

如果 URL 正确(file.dat 存在),效果很好(文件长度匹配)。如果它是错误的,我将看到一个非常小的文件长度并且我将看不到 xhr.onerror

我如何检测到 URL 不正确?

var xhr = new XMLHttpRequest()
xhr.responseType = "blob"
xhr.onload = ()=> {
var reader = new FileReader()
reader.onload = evt => {
var contents = new Buffer(evt.target.result, 'binary')
console.log('file len',contents.length)
}
reader.readAsBinaryString(xhr.response)
}
xhr.addEventListener("error", () => { console.error('xhr.onerror',e) })
xhr.open("GET", "file.dat")
xhr.send()

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest

我确实在控制台中看到一个指向 xhr.send() 的堆栈跟踪获取 http://localhost:8080/file.dat 404(未找到)

围绕 open 和 send 的 try catch 不会捕获任何异常。

文件由 WebpackDevServer 提供(不过我希望这无关紧要)。

最佳答案

您可以查看 status of the response object .

// Not using arrow function because I don't want the lexical `this`
xhr.onload = function() {
if (this.status === 404) {
// not found, add some error handling
return;
}
var reader = new FileReader()
reader.onload = evt => {
var contents = new Buffer(evt.target.result, 'binary')
console.log('file len',contents.length)
}
reader.readAsBinaryString(xhr.response)
}

归功于 https://developer.appcelerator.com/question/129410/xhr-request-cant-check-for-error-for-404-page-or-other-errors

关于javascript - XMLHttpRequest 检测 404(未找到),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33308932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com