gpt4 book ai didi

javascript - 在javascript中跨域发布二进制数据

转载 作者:行者123 更新时间:2023-11-29 15:04:33 24 4
gpt4 key购买 nike

我正在编写一个 Chrome 浏览器扩展程序,它可以拍摄当前选项卡 View 的快照并将其上传到我无法控制的网络服务 API。 Chrome 扩展库有一个函数(chrome.tabs.captureVisibleTab。请参阅 http://code.google.com/chrome/extensions/tabs.html),它可以拍摄快照并返回数据 url 中的数据。我在如何上传数据方面陷入僵局。

我尝试编写自己的多部分表单请求并使用 ajax 请求来发布数据。但是,ajax 坚持使用 UTF-8 编码数据,而 API 坚持使用 8 位编码二进制。我想也许可以使用像 http://malsup.com/jquery/form/ 这样的文件 uploader 插件会工作,但我似乎无法将 JS 变量中的数据转换为上传者将采用的形式。

任何关于至少一条新调查路径的想法都将受到高度赞赏。

最佳答案

原来你可以做到这一点。

Chrome 有一种通过 XMLHTTPRequest 发送 blob 的方法。

这是来自 Chromium 问题跟踪器的示例代码的链接:

http://code.google.com/p/chromium/issues/detail?id=35705#c34

XMLHttpRequest.prototype.sendAsBinary = function(datastr,contentType) {
var bb = new BlobBuilder();
var len = datastr.length;
var data = new Uint8Array(len);
for (var i=0; i<len; i++) {
data[i] = datastr.charCodeAt(i);
}
bb.append(data.buffer);
this.send(bb.getBlob(contentType));
}

关于javascript - 在javascript中跨域发布二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5026003/

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