1. 程式人生 > >FORM表單請求和AJAX請求使用和適用場景

FORM表單請求和AJAX請求使用和適用場景

最常使用的兩種資訊提交處理方式

第一種:表單提交FORM Submit 方式

FROM提交是我們經常適用的向後臺提交資料的一種方式,Form Tag 適用方法 參考

<form action="form_action.asp" method="get" onsubmit="">
    <p>First name: <input type="text" name="fname" /></p>
    <p>Last name: <input type="text" name="lname" /></p>
    <input type="submit" value="Submit" />
</form>

action設定提交目的URL,method設定提交方法,後文會對不同的提交請求方式對比處理。

FORM提交資料驗證:

我們對使用者輸入內容格式會有一定的規則要求,HTML5引入了簡單的驗證資料非空提示處理。如下input輸入為空時表單提交被拒絕,同時input標籤的type設定也會對輸入做一些簡單的驗證,比如type設定為email時輸入框對郵箱格式做簡單的驗證。

<input required="required">
<input type="email" required="required">

如果需要對使用者輸入做一些特殊的驗證和customize處理,可以使用onsubmit驗證,onsubmit事件是在點選表單提交按鈕時發生,在表單新增事件觸發程式碼,或者定義js函式處理,並且返回一個Boolean值,返回false時拒絕提交。

onsubmit="SomeJavaScriptCode"

表單提交後後臺對提交的資料處理並指定頁面跳轉或路由指定。action預設值為空,當action值為空時按照當前頁面URL提交處理,並重新整理頁面。

第二種:Ajax非同步請求點選按鈕提交方式

Ajax提交是非同步處理資料的並獲取返回值的常用方式:

常用一些input、textarea tag 為使用者提供輸入框,設定一個submit button,併為submit button新增點選事件,在點選事件中新增非同步請求操作。

Ajax提交資料驗證:

首先需要通過js獲取使用者輸入,然後對獲取的輸入作customize驗證處理,一般對郵箱的驗證採用js正則表示式的方式處理,還有一些基本的輸入非空驗證,在驗證通過後執行非同步請求操作。

Ajax Post 非同步請求:

Ajax請求處理一般使用JQuery的ajax方法或者post方法做請求處理,下面兩種使用方式等效。

$.ajax({
  type: 'POST',
  url: url,
  data: [
        param1="param1",
        param1="param2",
        param1="param3",
        param1="param4",
        ],
  success: success,
  dataType: dataType
});
$.post(url,data,success(data, textStatus, jqXHR),dataType)

url對應提交的url地址,data對應提交資料(值,變數,陣列形式都可以),success對應請求成功後執行的回撥函式,dataType對應服務響應的資料型別,預設是非同步請求,如果想實現同步請求可以設定sync對應為false。

上述兩種提交方式的區別和適用場景說明

情況一:提交併重新整理當前頁面,或者提交後跳轉到其他頁面。
情況二:提交資料並展示後臺返回的處理資訊。
情況一比較適合採用FORM提交的方式處理,簡單方便,還可以使用HTML5新新增的一些基本驗證。情況二比較適合採用Ajax提交的方式處理,在success函式中對返回的資訊做一些需要的操作處理,不過需要通過js對使用者輸入做取出操作,通過引數傳遞給後臺處理。
根據不同的情況選擇不同的處理方式,一般FORM提交處理的方式比較多的使用,Ajax更多的使用在動態載入更多元素。
FORM和Ajax使用的最大區別是:FORM需要重新整理頁面,而Ajax可以在不重新整理頁面的情況下執行資料請求或者提交資料等操作,如果需要在Ajax提交成功後重新整理頁面,可以呼叫window物件的location屬性的load()方法重新載入當前文件。

HTTP 請求拓展

HTTP 定義了一組請求方法, 以表明要對給定資源執行的操作。

GET:GET方法請求一個指定資源的表示形式. 使用GET的請求應該只被用於獲取資料.
HEAD:HEAD方法請求一個與GET請求的響應相同的響應,但沒有響應體.
POST:POST方法用於將實體提交到指定的資源,通常導致狀態或伺服器上的副作用的更改.
PUT:PUT方法用請求有效載荷替換目標資源的所有當前表示。
DELETE:DELETE方法刪除指定的資源。
CONNECT:CONNECT方法建立一個到由目標資源標識的伺服器的隧道。
OPTIONS:OPTIONS方法用於描述目標資源的通訊選項。

GET和POST是常用的兩種請求方法,GET方法用來請求資料,引數會在URL中傳送,請求可以被快取並保留在瀏覽器的歷史記錄中,敏感資料應該避免使用GET請求方法;Post方法請求不會被快取也不會在瀏覽器中保留記錄表資料長度沒有要求,可以處理敏感資料(使用者密碼等),關於Post方法的詳細講解參考

相關推薦

FORM求和AJAX請求使用適用場景

最常使用的兩種資訊提交處理方式 第一種:表單提交FORM Submit 方式 FROM提交是我們經常適用的向後臺提交資料的一種方式,Form Tag 適用方法 參考: <form action="form_action.asp" method="

form提交之Ajax常用版區別聯絡。

使用Ajax方法實現form表單的提交 1.區別 聯絡 在使用form表單的時候,一旦點選提交觸發submit事件,一般會使得頁面跳轉,頁面間的跳轉等行為的控制權往往在後端的控制層,後端會控制頁面的跳轉及資料傳遞。 但是當不希望頁面跳轉或者是想要將控制權放

Extjs6關於Ajaxform提交以及store請求session超時的處理方法

對於Store的處理 每個store配置的時候,配上load監聽,載入時處理: usrStore : { model : 'App.model.Usr', autoLoad :

django 基於form上傳文件基於ajax上傳文件

.py ons strong code .ajax lin con html $.ajax 一、基於form表單上傳文件 1、html裏是有一個input type="file" 和 ‘submit’的標簽 2、vies.py def fileupload(request

轉載:關於ajaxform提交,http請求提交的區別

https://www.cnblogs.com/lidgblogs/archive/2017/09/01/7403828.htmlajax模仿form上傳:<!doctype html> <html lang="en"> <head>

使用ajax提交form,包括ajax文件上傳 轉http://www.cnblogs.com/zhuxiaojie/p/4783939.html

ima option img jquery選擇器 open request resp logs ges 使用ajax提交form表單,包括ajax文件上傳 前言 使用ajax請求數據,很多人都會,比如說: $.post(path,{data:data},function

提交form---修改密碼 ajax、jQuery

改密 func 表單 eset password servlet 驗證 確認密碼 密碼 <form id ="password" method="post">   <table > <tr>   <td>原密碼:<

使用ajax提交form,包括ajax文件上傳

開發者 使用 sub 決定 發現 cli 也會 pos pre 前言使用ajax請求數據,很多人都會,比如說:$.post(path,{data:data},function(data){ ...},"json");又或者是這樣的ajax$.ajax({

form提交轉為ajax方式提交

clas modal 通過 fault IT pre submit sub 方式 <form action="xxx" method="get"> //action的值是請求的url地址 <div class="form-group">

form提交中,確定取消效果的實現

前端開發中的資料提交,目前大多數採用表單提交的方式,但是對於很對初學者來說,只知道在表單格式中,只有一個<input type="submit">,如果有兩個或者要求有多個提交選擇的時候應該怎麼做呢,其實用js就可以簡單實現: 例如下面的效果: 有一個確定和取消的

form提交與ajax提交的區別

原文地址:https://blog.csdn.net/yao302789/article/details/50954902 Ajax提交是通過js來提交請求,請求與響應均由js引擎來處理,頁面不會重新整理,用 戶感覺不到實際上瀏覽器發出了請求。比如說我們希望網頁總是顯示最新的新聞, 而又不想老是

form登入非同步ajax校驗

第一步:準備使用者登入的html頁面 <!DOCTYPE html> <html> <head> <meta content="application/xhtml+xml;charset=UTF-8" http-equiv="Content

ajax提交form,包括ajax檔案上傳

使用ajax請求資料,很多人都會,比如說: $.post(path,{data:data},function(data){ ... },"json"); 又或者是這樣的ajax $.ajax({ url:"${pageCont

action提交form,用於登入請求,servlet接收資料

今天發現登入需要用action提交form表單,然後通過後臺決定跳轉是否成功安全性較高。之前使用前端location.href來實現跳轉,安全性很低,被測試部門打回重做。 action總結: html寫法: <form id="signin-form_id" met

虛擬提交模擬ajax請求

前端開發人員經常會遇到ajax請求出現跨域問題,比如做單點登入。結合本人開發經驗推薦一方法——虛擬表單提交,解決此類問題。此方法的特點是簡單易懂!好了,直接上乾貨! function formCommit(){ var formobj; // window.top.open(

一個form中,上傳接收多個相同的name欄位引數

一般我們在同一個表單中,都會提交不同的name欄位。可是,我遇到了提交相同欄位的情況,例子如下: <form action="test_receive.php" method="post"> <div> <

servlet3.0以上form提交(ajax非同步提交)

一、普通form提交 1、jsp <form id="form" method="post" name="upload" enctype="multipart/form-data" action="/index.do"> <input type=

Struts2 攔截器處理普通Http求和Ajax請求時攔截配置

近期發現以前的系統中存在一個如下的Bug Case:       在Session過期時,執行頁面的ajax請求時,無法正常跳轉到session過期提示頁面,系統直接hold在那裡不動,只有點選左側選單時,系統才能跳轉到session過期提示頁面。       經過調研

jfinal利用form同時上傳圖片text

一:頁面 <form class="form-horizontal" action="/users/upload" method="post" enctype="multipart/form-data" name="myform" id="myform"><

form提交,後臺方法請求提示400,不進斷點

form表單提交,後臺方法請求提示400 發現前臺的date型別form資料不能傳值到controller中的引數中,需要在請求獲取資料之前轉換型別 @initBinder可以直接在你的controller中提供資料繫結。initbinder 方法不能有返回