最近做專案的時候,在通過post請求向服務端傳送資料的時候,請求失敗了。錯誤資訊如下:
返回的400(bad request)錯誤,說明客戶端這邊傳送的請求是有問題的。
和通過jquery中的ajax方法傳送的請求作對比。發現問題出在了請求的主體部分。
這裡的請求主體部分是payload的形式的。
而直接通過jq,是如下這種formdata形式。
formdata是客戶端主體部分組裝資料的一種方式,當我們使用:
method='post'提交乙個html-form表單
content-type:multipart/form-data
這三種方式去提交請求主體的時候,就是formdata形式。
將如上的請求簡寫一下:
主體1:productid=3189 單參主體2:productid=3189&orderid=145 多參
主體的形式會有兩種,在多引數的情況下,和get請求一樣,是用&進行連線的。
在jq的ajax模組中,contenttype的預設是使用的formdata傳送主體的。既然如此的話,我們就通過傳入自定義的contenttype
$.ajax(,type: 'post',
注意這裡的不同
是的,我們確實成功的修改了formdata的提交形式,變成了payload.
payload是一種以json格式進行資料傳輸的一種方式。
http可能會傳輸payload,如果不限制其請求的方式(那麼請求的方法就是options)或者響應的狀態碼,其包含元資料,頭部區域和資料。
如果資料是通過正常的put或者post方法傳送的,那麼payload就是乙個http請求起始行緊接乙個crlf後面的那一部分。
主體1:單參
主體2: 多參
同樣的,我們可以將payload形式的引數。通過formdata()來組裝。
通過formdata()組裝後的資料就像表單資料一樣,變成了鍵/值對的形式。
服務端的響應方式決定客戶端的提交方式
使用formdata()可以通過payload提交表單資料:multipart/form-data
Form表單控制項與浮動
第一點 文字域textarea 語法屬性 name 控制項的名字 cols 指定文字域的列數,變相設定寬度 rows 指定文字域的行數,變相設定高度 readonly 唯讀 placeholder 提示語句 第二點 選項框兩個部分 下拉選項框 滾動列表 語法 建立下拉列表 建立滾動列表 屬性 sel...
form表單與模板引擎
表單在網頁中主要負責資料採集功能。html中的 form serialize 呼叫的結果 username 使用者名稱的值 password 密碼的值 注意 在使用serialize 函式快速獲取表單資料時,必須為每個表單元素新增 name 屬性 var rows each res.data,fun...
寬度 表單 Form表單
塊級元素和行內元素 1.塊級元素獨佔一行,行內元素在同一行顯示 2.塊級元素預設寬度為100 行內元素由內容撐開 3.塊級元素可以設定寬高,行內元素不可以設定寬高 4.塊級元素可以設定margin和padding和四個方向,行內元素只可以設定margin和padding和左右值,上下不起作用 5.塊...