在Web開發(fā)中,傳輸數(shù)據(jù)是非常常見的操作。傳輸數(shù)據(jù)的方式有很多種,其中最常見的方式是使用表單提交。而常規(guī)的表單提交方式,是將表單數(shù)據(jù)以鍵值對的形式通過HTTP POST請求提交給服務器。然而在某些場合下,我們可能需要以JSON的形式提交表單數(shù)據(jù)。接下來我們就來看一下如何使用表單提交JSON數(shù)據(jù)。
<form> <input type="text" id="name" name="name"> <input type="text" id="age" name="age"> <input type="button" value="Submit" onclick="submitForm()"> </form>
在這個簡單的表單中,我們定義了兩個文本框和一個提交按鈕,然后在JavaScript中實現(xiàn)表單提交的方法。先看一下我們的JavaScript代碼:
function submitForm() { var name = document.getElementById("name").value; var age = document.getElementById("age").value; var data = { name: name, age: age }; var xhr = new XMLHttpRequest(); xhr.open("POST", "/submit", true); xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8'); xhr.send(JSON.stringify(data)); }
首先,我們獲取了表單中的數(shù)據(jù),并將它們保存到一個對象中。為了進行JSON數(shù)據(jù)的提交,我們需要使用XMLHttpRequest對象,并調(diào)用它的open()方法來配置請求參數(shù)。其中,第一個參數(shù)為請求方式,第二個參數(shù)為URL,第三個參數(shù)表示是否異步執(zhí)行。接著,我們調(diào)用setRequestHeader()方法,設置請求頭部的Content-Type為application/json;charset=UTF-8。最后,我們將數(shù)據(jù)對象轉(zhuǎn)換成JSON格式的字符串,然后使用send()方法將數(shù)據(jù)發(fā)送給服務器端。這里要注意,一定要將數(shù)據(jù)對象轉(zhuǎn)換成JSON格式字符串,才能使用POST方法將數(shù)據(jù)提交給服務器。