重新加载页面,其中包含由于AJAX调用而收到的html

时间:2015-06-05 08:43:32

标签: javascript jquery html ajax

我正在使用AJAX调用并将JSON作为响应然后用于执行各种操作。但是有时候我会得到HTML响应而不是AJAX(一个完整的HTML页面),在这种情况下我想用HTML内容重新加载页面(好像重定向发生了)。我能够找出响应是HTML还是JSON,但是我无法找到一种方法可以重新加载包含作为响应的一部分接收的HTML内容的页面,以便用户只能看到作为AJAX的一部分收到的HTML内容响应。

以下是代码:

function redirectIfHTML(xhr,data){
        var ct = xhr.getResponseHeader("content-type") || "";
        if (ct.indexOf('html') > -1) {
            //  Need to reload the data on current window
        }
    }

2 个答案:

答案 0 :(得分:0)

您可以使用document.write()

来核对和重写整个页面内容
document.write("<html><body><p>Hello world!</p></body></html>");

如果你想保留<head>(以及你的CSS等等),更清洁的解决方案是替换身体的内容:

$('body').html("<p>Hello world!</p>");

答案 1 :(得分:0)

我绝不想做这样的事情,但你可以使用一些data-url来解决:

带有MIME类型text / html的数据URI +刚刚收到的html:

var myurl = 'data:text/html,' + <HTML HERE>

然后你做:

document.location.href = myurl

(我没有真正尝试过)