ajax post 表單和 json 字符串

        在使用 koa2 的中間件 koa-bodyparser 解析客戶端發來的 json 字符串時,發現解析異常,分析後發現,這鍋 koa 不背,是發送 post 請求的問題。
ajax


【發送表單】json

$.ajax({
    type: "post",
    url: '/dosomething',
    data: {'a':'A', 'b':1, 'c': true},
    success: function (data) {
        // TODO
    },
    error: function () {
        // TODO
    }
});

        此時,http 請求頭裏面
app

Content-Type: application/x-www-form-urlencoded

        http 請求的 body,
koa

a=A&b=1&c=true

        這種狀況下,服務端一般會把全部參數的值解析爲字符串。ide


【發送 json 字符串】post

$.ajax({
    type: "post",
    url: '/dosomething',
    data: JSON.stringify({'a':'A', 'b':1, 'c': true}),
    contentType: 'application/json',    // 這句很重要
    success: function (data) {
        // TODO
    },
    error: function () {
        // TODO
    }
});

        此時,http 請求頭裏面url

Content-Type: application/json

        http 請求的 body,
spa

{"a":"A","b":1,"c":true}

        這種狀況下,服務端能夠分別解析獲得字符串、數字、布爾類型的參數。koa2


*** walker ***code

相關文章
相關標籤/搜索