【发布时间】:2012-01-13 17:58:05
【问题描述】:
我使用的 Google API 仅将图像作为二进制数据传输。
我完全不知道如何将其放入数据 URI 中以显示它,感谢您的帮助!
我说的电话是this API call。
如你所见,上面写着:
服务器返回照片的字节数。
对于调用(它是一个扩展),我使用 chrome_ex_oauth 方法。也许我需要在标题中添加一些东西来获取真正的二进制数据,而不是现在出现的字符串......
我需要做的是将生成的二进制文件转换为数据 URI,以便我可以显示它。
好的,我从 XHR 请求中得到了这个
现在,我不太了解二进制的东西。这是我假设的某种编码二进制数据?我试图将它放入 btoa 和其他 base64 编码器中,一切都会引发错误。 我试图用不同的东西覆盖MimeType,并且“响应”以一些奇怪的方式发生了变化,但没有任何东西接受数据。
所以现在我有了这个代码:
var nxhr = new XMLHttpRequest();
nxhr.onreadystatechange = function (data) {
if (nxhr.readyState == 4) {
console.log(nxhr);
}
};
nxhr.open(method, url, true);
nxhr.setRequestHeader('GData-Version', '3.0');
nxhr.setRequestHeader('Authorization', oauth.getAuthorizationHeader(url, method, params));
nxhr.send('Data to send');
任何人都知道如何将这个对我来说无法理解的响应转换为数据 uri???
感谢您的帮助
【问题讨论】:
-
二进制...数千 [of] 丑陋的字符...您知道二进制只有两个值,对吗?
-
文件阅读器?这听起来像java,而不是javascript。显示SSCCE 怎么样?否则,我真的不知道你在问什么。
-
@Joseph,也许他真的很讨厌 1 和 0 的样子。
-
html5 HAS FileReader ;-) 是的 Joseph,我知道 :) 但是将二进制数据放入字符串中,您会看到两个以上的值,对吧?
-
当您将二进制放入字符串时,它只显示从一系列 1 字节字符值中获取的字符。如果您在某处存储一个 4 字节整数并尝试通过 4 * 1 字节的数组读取它,您将获得 4 个不同的字符。字符串表示无关紧要,位序列是。
标签: javascript google-api data-uri