2016-03-09 44 views
2

Firefox & AJAX Junk after document element文档元素后垃圾。如何避免XML解析与Ajax get(XMLHttpRequest)在香草JavaScript?

我有几乎完全相同的问题,因为上述问题,但由于不同的原因。

要重申的问题:

我有一些HTML文件:

<style> #hat { color: red; } </style> 
<script> var hat = "fez"; </script> 

我敢通过香草Ajax调用retreiving:

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

即在控制台抛出错误:

junk after document element

我不希望根本解析html文件。我试过寻找一个非XML的HttpRequest方法,但JQuery是我能找到的主题。也许有像TextHttpRequest那样只检索文本而不分析它的东西?或者也许有一种方法可以告诉XMLHttpRequest解析是不必要的?

这一切似乎应该是非常明显的,但我只是继续找到使用jQuery的ajax教程。

Here's a link to the MDN

+1

代码工作正常,这里的http: //plnkr.co/edit/8KtqVfOR9d0OWkAmgDgb?p=preview – charlietfl

+0

你所做的这个例子也在我的工作上。我会看看我能否弄清楚问题所在。不过,你知道它是否仍然被解析为XML吗?这个错误并没有打破我的代码,我只是不喜欢让它解析不需要的东西。 –

+0

它是无效的XML能够解析它为一个XML文档。它被视为文本字符串 – charlietfl

回答

3

所有你应该需要做的是前。发送()加入这一行:

request.responseType = 'text'; 

这为我工作:显示

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

绝对完美。谢谢。 –

+1

不客气! – Silkster

+0

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseType –

相关问题