繁体   English   中英

HTML页面作为AJAX响应?

[英]HTML page as AJAX response?

我可以使用AJAX响应发送整个HTML页面吗? 如果是这样,如何呈现该HTML页面以及这样做的优缺点是什么。 我问这个问题的原因是我发现如果我们使用response.sendRedirect("index.html")作为对servlet中AJAX请求的回复,我们将indx.html作为AJAX响应XML。

您的问题没有多大意义,我无法确切地告诉您的问题 - 对ajax请求的响应将是服务器发回的任何内容。 它可以是纯文本,XML,HTML,HTML / XML文档的片段等。您可以使用的内容取决于您的脚本。 如果您正在使用像jQuery这样的库,那么客户端会发生什么以及您可以对响应做些什么也取决于库如何解释响应(它是脚本吗?它是HTML / XML还是JSON?)。

如果我们使用response.sendRedirect(“index.html”)作为对servlet中ajax请求的回复,我们将indx.html作为ajax响应xml。 有人可以解释一下

ajax请求的行为很像“常规”HTTP请求。 因此,当您从服务器发回重定向( HTTPServletResponse#sendRedirect )时,浏览器会跟随重定向,就像对任何其他请求一样。 如果您的ajax请求是针对需要HTTP BASIC身份验证的资源,则会看到登录提示,就像您在新浏览器窗口中直接访问URL一样。

如果你想发送HTML作为响应,因为你想更新div,表或其他元素,但仍想使用相同的css或javascript文件,那么它是有意义的。

你可以做的就是将它作为普通/文本发送回javascript函数,然后它可以把它放到你想要替换的内部html元素中,但是,如果你想要替换,不要这样做整个页面,然后做你想做的事是毫无意义的。

当您为ajax调用发出http请求时,它有自己的响应流,因此当您重定向时,您只是告诉浏览器将该http请求转到index.html,如@no.good.at.coding所述。

如果我得到您的问题,您只想知道是否可以使用AJAX返回整个HTML并了解其优缺点。

对您的问题的简短回答是肯定的,您可以使用您的AJAX响应返回整个HTML页面,因为AJAX只是对服务器的http请求。

为什么要获取整个HTML? 这对我来说很困惑,这是我不清楚的部分。 如果你想要渲染整个HTML(包括html,body等标签?),你也可以将它打开为新页面,而不是通过Ajax调用它。

如果您只是想通过AJAX获取HTML片段来填充页面中的占位符,那么这是一种可接受的做法。 jQuery甚至提供了load()函数(http://api.jquery.com/load/),使您可以轻松使用该任务(请参阅加载页面片段部分)。

使用此方法,您可以使用服务器逻辑指定的HTML片段(即登录失败或成功时)填充占位符,包括问题中的服务器重定向。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM