所以我试图通过jQuery.getJSON()
从我的node.js服务器(使用express.js)获取一些数据。
相关代码如下:
测试.html:
<script>
$.getJSON('/test', function(data, status, xhr){
document.write(data.message);
//console.log(data.message);
});
</script>
服务器.js:
app.get('/test', function(req, res){
res.json({ message: 'Hello World' });
});
现在,当仅使用 console.log()
时,一切工作正常,但当发出 document.write()
时,请求甚至无法完成尽管已获取数据,即浏览器在获取数据后进入不确定加载状态。
发送到回调的状态文本显示为“成功”,因此我猜测 ajax 端设置没有错误。
我使用的是 jQuery 1.11.1 和 node.js 0.13.0。
这可能是什么原因造成的?
最佳答案
document.write()
自动调用 document.open()
这基本上会清除您当前的文档(来源: MDN ),所以浏览器可能不会有足够的时间关闭 XHR 连接,从而导致“不确定的加载状态”。之后调用 document.close()
应该可以解决问题。
但首先请注意,在网页加载完成后(我猜是您的情况),您不应该使用 document.write
和 it's generally considered to be a bad practise .
关于javascript - 即使在获取响应后页面仍会继续加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27117104/