一、問題發現
前后端分離使用vue開發,結合axios進行前后端交互數據,一開始使用 get 請求,獲取數據,沒有發現任何問題,當使用 post請求 傳參時,發現,數據明明已經提交,在打開F12 開發者工具,點擊 network 里面的確有數據已經傳過去,只是后台那里 打印日志確實沒有獲取到傳過去的參數。
二、解決方案
1. 原因: 傳參方式是request payload,參數格式是json,而並非用的是form傳參,所以在后台用接收form數據的方式接收參數就接收不到了。
POST表單請求提交時,使用的Content-Type是application/x-www-form-urlencoded,而使用原生AJAX的POST請求如果不指
定請求頭RequestHeader,默認使用的Content-Type是text/plain;charset=UTF-8,而此處的Content-Type是:
2. 解決方法:
安裝 qs : npm install qs --save 在頁面中引用 qs : var qs = require('qs'); 同時 需要將 請求頭headers改為: 'Content-Type': 'application/x-www-form-urlencoded',
注:此方案只是本人項目中遇到的問題,並以此方法解決的了項目中的問題,經后來查詢,還有其他解決方法,就不一一介紹了。