Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将AJAX响应加载到浏览器中(不带jQuery)_Javascript_Html_Ajax_Internet Explorer 8 - Fatal编程技术网

Javascript 将AJAX响应加载到浏览器中(不带jQuery)

Javascript 将AJAX响应加载到浏览器中(不带jQuery),javascript,html,ajax,internet-explorer-8,Javascript,Html,Ajax,Internet Explorer 8,我使用以下JS代码加载远程页面: function SendCustomRequest() { var request = new XMLHttpRequest(); request.open("GET", "/test.html", false); request.send(null); alert(request.responseText); } 这很好,test.HTML的HTML内容显示在警报消息框中 现在我需要在浏览器窗口中显示整个test.html

我使用以下JS代码加载远程页面:

function SendCustomRequest() {
    var request = new XMLHttpRequest(); 
    request.open("GET", "/test.html", false);
    request.send(null);
    alert(request.responseText);
}
这很好,test.HTML的HTML内容显示在警报消息框中

现在我需要在浏览器窗口中显示整个test.html页面,但不显示jQuery。在AJAX调用发生的原始页面中没有一个div左右,但是该页面必须完全被test.html的内容替换。它必须在IE8中工作

有什么想法吗

PS:如果需要,AJAX调用也可以是异步的

该页面必须完全替换为test.html的内容

将document.documentElement.outerHTML设置为request.responseText

该页面必须完全替换为test.html的内容

我认为这不是一个好主意,因为我知道这在某些浏览器中是不可能的

您可以打开新窗口,然后将test.html的内容放在那里

查看了解如何将选项设置为“窗口”

还要检查您所说的

,但该页面必须完全替换为test.html的内容 如果我完全接受你的说法,那就是页面上的所有内容都必须被替换

当页面的某些部分需要更新时,AJAX是有意义的

如果需要替换整个页面,则直接发出GET请求是合适的

所以我建议在这种情况下不要使用AJAX。 您为AJAX调用提供的URL和参数可以分配到脚本中的window.location.href。浏览器将直接发出相应的GET请求,并自动更新整个页面

请参见下面的示例:

函数getNewPageurl,参数{ 警报发出GET请求:+url+?+参数; window.location.href=url+?+参数; } 函数doOnload{ getNewPagehttp://www.example.com/test.html,par1=val1&par2=val2; } 一些虚拟文本


是否需要更换?您将无法更改整个文档。您可以附加到现有的页面文档,但是完整的文档替换将需要使用AJAX之外的window.location来获取页面。为什么我的问题被否决了?他将请求标记为同步,因此onload在这里可能不起作用,@TbWill4321:如果需要,异步AJAX调用也可以。我已经相应地更新了我的原始帖子。哦,我认为这也是一个很好的解决方案。谢谢谢谢分享。我之所以想使用XMLHttpRequest,是因为我需要向HTTP请求添加一个自定义头。在使用你建议的方法时,有什么方法可以做到这一点吗?恐怕没有!将URL分配给window.location.href的效果与链接的效果几乎相同。用户的浏览器设置连接并发出GET请求,而不可能操纵标题。为了完整起见:您是否控制应在此处调用的URL?也就是说,您是否可以修改代码?我认为它必须是在发出GET请求时执行的脚本或程序?如果是:您可以接受与通过标头接受的数据相同的数据,并将其作为GET参数值,然后将此数据添加到参数中,例如&XYZ_header_data=data。不幸的是,由于公司内部的安全原因,我们必须使用HTTP标头添加一些自定义数据。
request.onload = request.onreadystatechange = function() {
  document.documentElement.outerHTML = request.responseText
}
function SendCustomRequest() {
    var request = new XMLHttpRequest(); 
    request.open("GET", "/test.html", false);
    request.send(null);

    var newWindow = window.open("");
    newWindow.document.write(request.responseText);
}