在使用easy-mock模擬post提交數據的情況中,我們有時需要對提交的數據進行簡單邏輯處理。
查閱文檔發現可以使用"_req.body.keyname"來獲取相應的值,但是在對演示項目進行預覽操作時發現,容易出現undefined或Bad Request值。
文檔中提到“當 post 請求以 x-www-form-urlencoded 方式提交時,我們可以拿到請求的參數對象”,經過多次嘗試發現按照參考文檔,在header中配置content-type項,目前無法正常操作。
①接口配置->更新

{ code: function({ _req }) { if (_req.body.userName === 'admin' && _req.body.password === '123456') { return 200 } else { return 500 } }, data: function({ _req }) { if (_req.body.userName === 'admin' && _req.body.password === '123456') { return { name: "admin", access: ["admin"], user_id: "2", token: "admin", avatar: "https: //avatars0.githubusercontent.com/u/20942571?s=460&v=4" } } else { return "登錄賬號不對" + _req.body.userName } } }
②請求接口->post參數請求

{ "userName":"admin", "password":"123456" }
③iView-admin中axios設置post參數為@ResponseBody(從請求體中取參數)
解決如下:src->libs->axios.js中 引入qs (使用qs 庫對數據進行轉換)

. . // 引入qs,若無,先npm install qs import qs from 'qs' . . // 修改request函數 request (options) { . . if(options.data) options.data=qs.stringify(options.data) . . }
這樣,請求體以Form Data形式post提交
備注: easy-mock上登錄請求api最好不以login命名,無法返回data。(暫時不知緣由)