ajax post 表單和 json 字符串

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


【發送表單】

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

        此時,http 請求頭裏面

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

        http 請求的 body,

a=A&b=1&c=true

        這種情況下,服務端通常會把所有參數的值解析爲字符串。


【發送 json 字符串】

$.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 請求頭裏面

Content-Type: application/json

        http 請求的 body,

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

        這種情況下,服務端可以分別解析得到字符串、數字、布爾類型的參數。


*** walker ***


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章