更新Ajax请求上的整个页面
我有一个 AJAX 请求,可能有两种可能的结果:
- 服务器响应一条消息,我应该将其放在
<div>
- 服务器使用HTML页面进行响应,在这种情况下,我需要用新页面替换当前页面并更改地址(客户端在请求之前知道地址)。
如果我有需要处理这两种情况的 AJAX 请求,解决方案是什么?
url = "http://example.com"
ajax.request(callback)
function callback(response) {
if (case2(response)) {
history.pushState({}, "New page", url);
document.innerHTML = response
} else {
updateDiv(response)
}
}
我对实现第一个分支的正确方法感兴趣,或者服务器是否可以以某种方式编写一个标头,使浏览器像通常的HTTP响应一样处理响应并更新页面位置和内容,例如使用给定内容重定向。
我知道服务器可以返回链接而不是页面,但在这种情况下,客户端上需要一个额外的阶段 - 重定向,然后在服务器上填充新页面。