所以我试图从我的node.js服务器(使用express.js)通过jQuery.getJSON()
获取一些数据。
以下是相关代码:
的test.html:
<script>
$.getJSON('/test', function(data, status, xhr){
document.write(data.message);
//console.log(data.message);
});
</script>
server.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。
导致这种情况的原因是什么?
答案 0 :(得分:1)
document.write()
自动调用document.open()
,这基本上会清除您当前的文档(来源:MDN),因此浏览器可能没有足够的时间关闭XHR连接,从而导致a&#34;无限期加载状态&#34;。之后调用document.close()
可以解决问题。
但首先请注意,在网页加载完毕后我绝不应该使用document.write
(我认为是你的情况)和it's generally considered to be a bad practise。