Formフォーム提出の4種類のデータフォーマット

2938 ワード

展示が容易である、superagentライブラリを使用する.フォームの提出はPOSTリクエストの1つの方法にすぎません.application/json application/jsonのフォーマットは、AJAXまたはFetchPOST要求の中で最も一般的なフォーマットと言える.しかし、Formフォーム提出W3Cフォーム提出HTML5フォーム提出のフォーマットについて説明しました.
つまり、新しいバージョンのブラウザではサポートされていませんapplication/json形式のフォームの提出.古いバージョンはまだ使えます.データフォーマットを見てみましょう
request.post("/simu/wechat/voucherList")
    .set('Content-Type', 'application/json')
    .send({
        name:"leiwuyi",
        age:12
    }).then(res => {

    })

application/x-www-form-urlencoded
このフォームがコミットするデフォルトのフォーマットで、ファイルタイプはサポートされていません.その要求フォーマットはキー値ペアである.
request.post("/simu/wechat/voucherList")
            .set('Content-Type', 'application/x-www-form-urlencoded')
            .send('name=tj')
            .send('pet=tobi')
            .then(res => {
            })
multipart/form-data
フォームの提出書類はこの形式でなければならない.'Content-Type'='multipart/form-data'は設定できないことに注意してください.手動で設定したので、後ろのboundary= boundaryはなくなりました.これは境界線であり、サービス側はこの境界線でkey値を除去する.境界線サービス端がなければどこからキーを取るか分からない`.
let form = new FormData();
        form.append("name", "leiwuyi");
        form.append("age", 12);
        request.post("/simu/wechat/voucherList")
            //.set('Content-Type', 'multipart/form-data')
            .send(form)
            .then(res => {
            })
text/plain text/plainは、純粋なテキスト形式(すなわち、文字列)で送信.{ name:"leiwuyi", age:12 }などのオブジェクトを送信する場合は、JSON.stringfiy()を処理する必要があります.そうしないと、[object Object]が送信されます.
request.post("/simu/wechat/voucherList")
    .set('Content-Type', 'text/plain')
    .send("age=12")
    .then(res => {
})

問題があったら皆さん、タイムリーに指摘してください.ありがとうございます.