什么是“blob:http://”前缀,我可以在哪里了解更多信息?

Chr*_*ski 57 safari url google-chrome content-type-association binary-files

我正在使用 safari,不确定这是否适用于其他浏览器,但是当我注册一个 Storm path 帐户时,我看到以下 URL

blob:https://api.stormpath.com/1be95204-93d6-4GUID HERE
Run Code Online (Sandbox Code Playgroud)

blob: 前缀对我来说是新的,我想知道它是否适用于所有浏览器,以及可能存在哪些其他前缀。

小智 29

Blob URI/URL 是由 JavaScript 创建的,指的是浏览器当前在内存中的数据(仅在当前页面中),而不是指主机上存在的数据。

有关使用的更多信息,请参阅:https : //www.npmjs.com/package/blob-util


Spi*_*iff 15

URL 的第一个冒号的开头称为“URI 方案”(或“URL 方案”)。谷歌搜索blob URI scheme揭示了W3C 的文件 API 工作

大多数 URI 方案没有包含完整其他 URI 的标准规定,因此您不会将它们视为另一个完整 URI 的前缀。除了 http: 和 https: 之外,一些常见的 URI 方案包括:

  • ftp:
  • 邮寄地址:
  • 数据:
  • 脚本:
  • smb: (和 cifs: )
  • 法新社:

…还有很多。我敢肯定我会遗漏每个人的最爱。:)


Jos*_*ine 11

由于 URL 字符串中有关 blob 的背景信息,我从StackOverflow复制并粘贴了答案。

从 JavaScript 创建的 URLBlob无法转换为“普通” URL。

A blob: URL 不是指服务器上存在的数据,而是指当前页面的浏览器当前内存中的数据。它在其他页面上不可用,在其他浏览器中不可用,在其他计算机上也不可用。

因此,通常将 Blob URL 转换为“正常”URL 是没有意义的。如果您想要一个普通的 URL,您必须将数据从浏览器发送到服务器,并让服务器像普通文件一样使其可用。

至少在 Chrome 中,可以将 blob: URL 转换为 data: URL。您可以使用 AJAX 请求从 blob: URL 中“获取”数据(即使它实际上只是将其从浏览器的内存中拉出,而不是发出 HTTP 请求)。

  • 您能解释一下如何在 Chrome 中使用 AJAX 将 `blob: URL` 转换为 `data: URL` 来“获取”数据吗?或者也许给我指出一个教程?我一生都无法弄清楚。谢谢! (3认同)