如何使用 jQuery 的 ajax 方法以 Blob 形式检索图像?
使用 jQuery 的 ajax 方法以 Blob 形式检索图像
背景:
正如上一个问题中所讨论的,需要使用 jQuery 检索图像并将其存储为 Blob 以供后续在 POST 请求中使用。然而,jQuery 的数据类型没有明确提及图像。
问题:
CoffeeScript(及其 JavaScript 等效项)中的当前代码尝试使用 jQuery.get() 检索图像,并且将其作为 Blob 存储在 FormData 对象中。但是,由于数据类型不匹配,这种方法会导致图像损坏。
问题:
是否有一种可行的方法可以使用 jQuery 的 ajax 方法将图像检索为 Blob?
答案:
方法 1:使用原生 XMLHttpRequest
使用 Blob 形式检索图像是不可能的jQuery 单独的 ajax 方法。然而,利用本机 XMLHttpRequest 提供了一个解决方案。下面是一个 JavaScript 片段:
var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(){ if (this.readyState == 4 && this.status == 200){ //this.response is what you're looking for handler(this.response); console.log(this.response, typeof this.response); var img = document.getElementById('img'); var url = window.URL || window.webkitURL; img.src = url.createObjectURL(this.response); } } xhr.open('GET', 'http://jsfiddle.net/img/logo.png'); xhr.responseType = 'blob'; xhr.send();
在此代码中,创建了一个 XMLHttpRequest 对象,并将其响应类型设置为“blob”。 onreadystatechange 事件用于处理响应并为图像创建对象 URL。
方法 2:使用 jQuery 3
但是,值得一提的是, jQuery 版本 3,现在可以以 Blob 形式检索图像。下面是使用 jQuery 3 修改后的 JavaScript 代码段:
$.ajax({ url:'https://images.unsplash.com/photo-1465101108990-e5eac17cf76d?ixlib=rb-0.3.5&q=85&fm=jpg&crop=entropy&cs=srgb&ixid=eyJhcHBfaWQiOjE0NTg5fQ%3D%3D&s=471ae675a6140db97fea32b55781479e', cache: false, xhr:function(){// Seems like the only way to get access to the xhr object var xhr = new XMLHttpRequest(); xhr.responseType = 'blob' return xhr; }, success: function(data){ var img = document.getElementById('img'); var url = window.URL || window.webkitURL; img.src = url.createObjectURL(data); }, error:function(){ } });
在此代码段中,我们使用 jQuery 的 xhr() 函数来获取对 XMLHttpRequest 对象的访问权限,并将其响应类型设置为“blob”。这使我们能够以 Blob 形式检索图像并根据需要使用它。
以上是如何使用 jQuery 的 ajax 方法以 Blob 形式检索图像?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

Python和JavaScript开发者的薪资没有绝对的高低,具体取决于技能和行业需求。1.Python在数据科学和机器学习领域可能薪资更高。2.JavaScript在前端和全栈开发中需求大,薪资也可观。3.影响因素包括经验、地理位置、公司规模和特定技能。

实现视差滚动和元素动画效果的探讨本文将探讨如何实现类似资生堂官网(https://www.shiseido.co.jp/sb/wonderland/)中�...

JavaScript的最新趋势包括TypeScript的崛起、现代框架和库的流行以及WebAssembly的应用。未来前景涵盖更强大的类型系统、服务器端JavaScript的发展、人工智能和机器学习的扩展以及物联网和边缘计算的潜力。

如何在JavaScript中将具有相同ID的数组元素合并到一个对象中?在处理数据时,我们常常会遇到需要将具有相同ID�...

不同JavaScript引擎在解析和执行JavaScript代码时,效果会有所不同,因为每个引擎的实现原理和优化策略各有差异。1.词法分析:将源码转换为词法单元。2.语法分析:生成抽象语法树。3.优化和编译:通过JIT编译器生成机器码。4.执行:运行机器码。V8引擎通过即时编译和隐藏类优化,SpiderMonkey使用类型推断系统,导致在相同代码上的性能表现不同。

探索前端中类似VSCode的面板拖拽调整功能的实现在前端开发中,如何实现类似于VSCode...
