使用ajax请求加参数 xhrFields: { responseType: "blob ", } 报错, Failed to read the 'responseText' property from 'XMLHttpRequest
时间: 2024-10-10 22:11:54 浏览: 346
canvas-to-blob:为 HTML5 画布元素实现 toBlob() 方法。 所以我们可以ajax上传画布内容作为文件
当你尝试通过`xhrFields`选项设置`responseType: "blob"`,并且从XMLHttpRequest对象读取`responseText`属性时,可能会遇到错误,因为Blob对象并不支持直接获取文本内容。`responseText`通常用于处理纯文本响应,而`Blob`则是二进制数据,比如图片、文件等。
当你需要处理二进制数据时,应该使用`response`属性,而不是`responseText`。对于Blob类型的响应,你应该使用`response.blob()`来获得Blob对象,然后使用FileReader API将其转换为可以操作的格式,例如`let blobAsText = await new Response().text()`。
如果你想要获取字符串响应并仍然使用`responseText`,你需要在发送请求时将`responseType`改为默认的"json"或者其他能转化为字符串的形式(如"text")。
```javascript
const xhr = new XMLHttpRequest();
xhr.open('GET', 'your-url');
xhr.responseType = 'text'; // 或者 'json';
xhr.onload = function() {
if (xhr.status === 200) {
console.log(xhr.responseText);
}
};
xhr.send();
```
阅读全文