文档元素之后的垃圾。如何避免在 vanilla javascript 中使用 ajax get (XMLHttpRequest) 解析 XML?

Sep*_*eed 3 html javascript ajax text

文档元素之后的 Firefox 和 AJAX 垃圾

我遇到了与上述问题几乎完全相同的问题,但原因不同。

重申这个问题:

我有一些 html 文件:

<style> #hat { color: red; } </style>
<script> var hat = "fez"; </script>
Run Code Online (Sandbox Code Playgroud)

我正在通过 vanilla ajax 调用检索:

var request = new XMLHttpRequest();
request.open('GET', target, true);

request.onload = function() {
    if (request.status >= 200 && request.status < 400) {
        // Success!
        var response = request.responseText;
    } else {
        // We reached our target server, but it returned an error
    }
};

request.onerror = function() {
   // There was a connection error of some sort
};

request.send();
Run Code Online (Sandbox Code Playgroud)

那是在控制台中引发错误:

junk after document element

我根本不想解析 html 文件。我已经尝试搜索非 XML HttpRequest 方法,但我只能在该主题上找到 JQuery。也许有像 TextHttpRequest 这样的东西,它只检索文本而不解析它?或者也许有一种方法可以告诉 XMLHttpRequest 解析是不必要的?

这一切看起来应该很明显,但我一直在寻找使用 jquery 的 ajax 教程。

这是 MDN 的链接

Sil*_*ter 5

您需要做的就是在 .send() 之前添加这一行:

request.responseType = 'text';
Run Code Online (Sandbox Code Playgroud)

这对我有用:

var request = new XMLHttpRequest();

// add a responseType here
request.responseType = 'text';

request.open('GET', target, true);

request.onload = function() {
    if (request.status == 200) {
        // Success!
        var response = request.responseText;
        document.body.innerText = response;
    } else {
        // We reached our target server, but it returned an error
           alert('there was an error in the response.\n\n Error: ' + request.status);
    }
};

request.onerror = function() {
   // There was a connection error of some sort
   alert('there was an error in the request');
};

request.send();
Run Code Online (Sandbox Code Playgroud)