流二进制流与javascript



我正在探索使用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".

无论如何,如果有人有线索,如果有可能从第三方服务器读取zip文件,并将其保存为javascript变量中的二进制blob,我将非常高兴。

JSONP需要JSON数据,而不是二进制流。另一个服务器不会给你一个JSON MIME类型——它将是一个ZIP文件,所以这将不起作用。

相关内容

  • 没有找到相关文章

最新更新