簡體   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