weixin_33686714 2015-10-04 23:16 采纳率: 0%
浏览 1359

jQuery AJAX Blob响应

I am working on an mobile App and have some issues with the jQuery AJAX get method. I want to receive a video from my server, but somehow I can't receive the file in the format I want.

Here is my code (receiving the data as blob and everything):

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();

But unfortunately this code doesn't run on mobile devices.

The 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);
 });

When I run the jQuery code I get the following error:

parser error (index):67 No conversion from text to blob"

Because the transmitted data isn't of the type blob.

Is there any possibility to send the data from jQuery directly as blob? If yes, how? And is there a way to make the code above work on mobile devices too?

Thank you very much,
SirSandmann

  • 写回答

0条回答 默认 最新

    报告相同问题?