利用Form替代ajax請求

在開發的時候,發現一段較爲有趣的舊代碼。在這段代碼裏,開發人員利用form表單,發起了post請求,並在新頁面打開了這個請求。

在習慣了用ajax來進行交互,看到這種方式,有種眼前一亮的感覺。我一直以爲沒有辦法在新的頁面裏打開post請求,但是通過這種方式,就能實現了。

我網上查一下form表單的基本信息

Form 對象屬性

屬性 描述 W3C
acceptCharset 服務器可接受的字符集。 Yes
action 設置或返回表單的 action 屬性。 Yes
enctype 設置或返回表單用來編碼內容的 MIME 類型。 Yes
length 返回表單中的元素數目。 Yes
method 設置或返回將數據發送到服務器的 HTTP 方法。 Yes
name 設置或返回表單的名稱。 Yes
target 設置或返回表單提交結果的 Frame 或 Window 名。 Yes

這些對象屬性,是可以通過js代碼讀取的。

Form 對象方法

方法 描述 W3C
reset() 重置一個表單 Yes
submit() 提交一個表單 Yes

代碼實現步驟

  1. 創建form元素
let form= document.createElement('form')
  1. 設置form屬性
form.action='http://api'
form.enctype='application/json'
form.method='post'
form.target='_blank'	
  1. 設置form表單數據
// 說明一下,form表單數據,就是裏面的input元素
let inputName=document.createElement('input')
inputName.setAttribute('name','name')
inputName.setAttribute('value', 'zhangsan')
form.appendChild(inputName)
  1. 提交form
// form提交前,需要追加到頁面裏
document.body.appendChild(form)
form.submit()
// 執行完成後,從頁面裏清除
form.parentNode.removeChild(form)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章