解決ios
在使用easy-mock模擬post提交數據的狀況中,咱們有時須要對提交的數據進行簡單邏輯處理。
查閱文檔發現能夠使用"_req.body.keyname"來獲取相應的值,可是在對演示項目進行預覽操做時發現,容易出現undefined或Bad Request值。git
文檔中提到「當 post 請求以 x-www-form-urlencoded 方式提交時,咱們能夠拿到請求的參數對象」,通過屢次嘗試發現按照參考文檔,在header中配置content-type項,目前沒法正常操做。github
①接口配置->更新npm
{ 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參數請求axios
{ "userName":"admin", "password":"123456" }
③iView-admin中axios設置post參數爲@ResponseBody(從請求體中取參數)segmentfault
解決以下:src->libs->axios.js中 引入qs (使用qs 庫對數據進行轉換)api
. . // 引入qs,若無,先npm install qs import qs from 'qs' . . // 修改request函數 request (options) { . . if(options.data) options.data=qs.stringify(options.data) . . }
這樣,請求體以Form Data形式post提交ide
備註: easy-mock上登陸請求api最好不以login命名,沒法返回data。(暫時不知原因)函數