我正在使用移动应用程序,并且在使用Jquery Ajax get方法时遇到了一些问题。我想从我的服务器接收视频,但不知怎的,我无法以我想要的格式接收文件。
这是工作的xhr代码: (将数据作为blob和所有内容接收)
window.URL = window.URL || window.webkitURL;
var xhr = new XMLHttpRequest();
xhr.open('GET', 'MyServerAddress/testVideos/test.mp4', true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
if (xhr.status === 200) {
var video = document.createElement('video');
video.src = window.URL.createObjectURL(this.response);
video.autoplay = true;
document.body.appendChild(video);
}else{
"CORS failed. Check Internet Connection."
}
};
xhr.send();
但遗憾的是,此代码并未在移动设备上运行。
Jquery Ajax:
jQuery.ajaxSetup({
async:false,
dataType:'blob'
});
$.get("MyServerAddress/testVideos/test.mp4",function(d){
var video = document.createElement('video');
video.src = window.URL.createObjectURL(d);
video.autoplay = true;
document.body.appendChild(video);
}).error(function(xhr, ajaxOptions, thrownError){
console.log(xhr);
console.log(ajaxOptions);
console.log(thrownError);
});
当我运行Jeuqry Code时,我得到了#parsererror (索引):67无法从文本转换为blob"误差修改。因为传输的数据不是blob类型的。
我的问题: 是否有可能直接将数据从jquery发送为blob?如果有,怎么样? (我认为jquery api不是很好) 有没有办法让上面的代码在移动设备上工作?
非常感谢, SirSandmann