簡體   English   中英

ajax post 請求和表單 post 請求有什么區別?

[英]What is the difference between ajax post request and form post request?

以服務端為例,我使用flask來處理這些post請求,同樣的代碼可以處理這兩種類型的請求,但是在客戶端,ajax請求不會讓瀏覽器刷新整個頁面,但是表單可以。 那么deep有什么區別,是不是有些header字段不一樣?? 或者是其他東西?? 謝謝!

沒有區別,只是 AJAX 就像首字母縮寫詞所暗示的那樣,是異步的,這意味着它不會阻止其他任何東西的運行。 表單和 AJAX 請求都發送 POST 請求,唯一的區別是瀏覽器使用來自表單 POST 請求的響應來加載新頁面,而 AJAX 請求的響應被傳遞給 JavaScript 中的回調。

Ajax 請求是在后台異步發送並由您的 javascript 代碼處理的 xhr 請求,而表單請求是普通請求,瀏覽器頁面將重新加載以及瀏覽器呈現的響應

Form 和 Ajax 請求以同樣的方式發送到后面。 對於 Flask,您捕獲 POST 請求,如果 Ajax 包含表單中的所有相同信息,則它是相同的。

提交表單(並導致頁面刷新)是表單向 DOM 觸發的“onsubmit”事件 如果您願意,這實際上可以被覆蓋。 這通常通過“PreventDefault”功能完成 我相信這已在網站上多次提及。 您可能剛剛錯過了表單中“onsubmit”事件的概念。

提交一個 HTML 表單會構建一個根據為 HTML 表單定義的規則格式化的 HTTP 請求,並使瀏覽器導航到它得到的響應。

使用 JavaScript 發出請求允許編程構造更多種類的請求——包括添加自定義標頭、以不同方式(例如 JSON)格式化數據,以及與 HTML 表單構造請求的方式相同——並導致響應用 JavaScript 處理。

通常,在編寫服務器端代碼時,您不需要關心請求是來自 JavaScript 還是來自 HTML 表單。 在某些情況下,您會這樣做,但僅限於XY 問題

例如,您可能希望使用 HTML 文檔響應常規表單提交(因為瀏覽器正在導航到它),但希望使用 JSON 響應 Ajax 請求(因為您希望輕松處理它)。 在這種情況下,JavaScript 應該設置一個Accept請求標頭來告訴服務器它更喜歡 JSON 響應。 然后您編寫的服務器端代碼應該查看它以確定是首選 HTML 還是 JSON(而不用擔心為什么首選 HTML 或 JSON)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM