我想使用ajax重新加载页面的内容而不实际刷新页面。因此,使用ajax,页面的所有内容都会更改,而不会实际重新加载页面。我怎么能这样做?
我不能使用div因为我想要替换整个页面(因此希望w3c html验证合规)。
我怎么能用jquery和ajax做到这一点?
答案 0 :(得分:3)
AJAX出现的情况是更新整个页面不是资源有效的(即,在请求之后只有部分页面要更新)。对于您的示例,页面刷新听起来很理想 - 因为无论如何所有内容都将被更改。
在所有情况下,AJAX都不是最好的答案,但如果你坚持用AJAX来解决你的问题...使用jQuery:
$.post('/login', {login: 'username', password: 'password'}, function(response) { $('body').html(response); }, 'text');
注意,这只会更新正文 - 因此回复不应包含html
,head
,body
等。
更好的解决方案是将部分分配给页面的各个部分,通过AJAX更新进行寻址。然后,您的AJAX响应者可以返回一个关联数组,其中包含这些部分的ID作为键,并将其内容作为值。然后,一个简单的循环可以更新页面的任何(或所有)部分,只需对上面提供的代码片段进行少量修改。