我正在探索使用 HTML5、JavaScript、WebSockets、MQTT 和 HTTP 发送文件的不同方式。我一直在尝试从本地文件系统读取位于我服务器上的 zip 文件,并将其作为二进制 blob 接收。一旦我有了那个二进制 blob,我希望将它转发给其他客户端,但这是另一个问题。
我在尝试下载文件时遇到了一些安全限制问题,但我不确定我正在尝试做的事情实际上是否可行。使用除“jsonp”之外的任何其他类型作为类型会呈现如下错误:
Origin null is not allowed by Access-Control-Allow-Origin.
我在这里有一些 jQuery 代码,我希望它可以读取 zip 文件并返回一个 blob 给我。我想认为 JSONP 可以传递二进制数据而不是填充的 json 是天真的。
$(document).ready(function() {
$.ajax({
url : 'http://example.com/myzip.zip',
dataType : 'jsonp',
jsonp : 'callback',
jsonpCallback : 'jsonpCallback',
success : function() {
alert("success");
}
});
});
function jsonpCallback(data) {
alert(data.message);
}
这是我得到的错误,我认为是因为我尝试获取 zip 数据而不是 json 数据。
Resource interpreted as Script but transferred with MIME type application/zip: "http://example.com/myzip.zip?callback=jsonpCallback&_=1365093133651".
无论如何,如果有人知道可以从 3rd 方服务器读取 zip 文件并将其保存为 javascript 变量中的二进制 blob,我将非常高兴。