XMLHttpRequest 101 Exception for AJAX Subqueries

I am making an AJAX selection of a binary file that I am processing in javascript. (Quake 2 BSPs if someone cares.) The code for extracting and analyzing the source file works fine and looks something like this:

function loadFile(url) {
    var request = new XMLHttpRequest();

    request.onreadystatechange = function () {
        if (request.readyState == 4 && request.status == 200) {
            var parsed = parseFile(request.responseText);
        }
    };

    request.open('GET', url, true);
    request.overrideMimeType('text/plain; charset=x-user-defined');
    request.setRequestHeader('Content-Type', 'text/plain');
    request.send(null);
}

As I said, this works great, and everything loads and analyzes correctly. However, the file also describes several secondary files (textures) that also need to be obtained, and therefore I added an internal loop that should load and parse all these files, for example:

function loadFile(url) {
    var request = new XMLHttpRequest();

    request.onreadystatechange = function () {
        if (request.readyState == 4 && request.status == 200) {
            var parsed = parseFile(request.responseText);
            for(var i = 0; i < parsed.files.length; ++i) {
                loadSecondaryFile(parsed.files[i].url); // Request code here is identical to this function
            }
        }
    };

    request.open('GET', url, true);
    request.overrideMimeType('text/plain; charset=x-user-defined');
    request.setRequestHeader('Content-Type', 'text/plain');
    request.send(null);
}

function loadSecondaryFile(url) {
    var request = new XMLHttpRequest();

    request.onreadystatechange = function () {
        if (request.readyState == 4 && request.status == 200) {
            var parsed = parseSecondaryFile(request.responseText);
        }
    };

    request.open('GET', url, true);
    request.overrideMimeType('text/plain; charset=x-user-defined');
    request.setRequestHeader('Content-Type', 'text/plain');
    request.send(null);
}

, , ( Chrome, Dev Channel): NETWORK_ERR: XMLHttpRequest Exception 101 , , loadSecondaryFile loadFile .

, ajax- onreadystatechage juju, ajax setTimer .

?

+3
1

... ! , , . !

AJAX , , URL-. , , Quake2 bsp, - . bsp 32- . , substr :

var path = fileBuffer.substr(fileOffset, 32);

, "e2u3/clip", "e2u3/clip\0\0\0\0..." , ( console.log char .), URL- .

:

var path = fileBuffer.substr(fileOffset, 32).replace(/\0+$/,'');

AJAX!

! .

+7
source

Source: https://habr.com/ru/post/1750829/


All Articles