vueプロジェクトで発生した問題のまとめ
2519 ワード
一:axios用postパラメータのデータフォーマット
これまでプロジェクトをしていたとき、パラメータがバックグラウンドに伝わるフォーマットに気づかなかった.一般的にはjsonオブジェクトを意識しています.この間まで
axiosデフォルトパラメータフォーマット
解決方法:
注意:このプロジェクトは私が
二:vueのドロップダウンボックスでv-forを使用するレンダリングの問題
プロジェクトでは、ドロップダウンボックスの内容が多いので、配列ループを使用してレンダリングします.使い始めたばかりのレンダリング方式ですが、互換性があり、プロジェクトは火狐とIEブラウザでデータレンダリングができません.
その後、このようなフォーマットに変更すると正しいです.
亲测有用,ღ(´・ᴗ・`)比心
これまでプロジェクトをしていたとき、パラメータがバックグラウンドに伝わるフォーマットに気づかなかった.一般的にはjsonオブジェクトを意識しています.この間まで
Vue +Vue-router + axios + element-ui
でバックグラウンドシステムを作った.バックグラウンドと連調している間に、バックグラウンドから戻ってきたデータはずっとサーバーが小差をつけていたが、バックグラウンドの同僚に見せてもらい、私が空になったと言った.しかし、私は明らかに伝えたのに、同じパラメータ方式で別のプロジェクトでインタフェースを正常に呼び出すことができます.後で調べてみると、この2つの項目は、バックグラウンドで受信したパラメータのフォーマットが異なるので、フロントエンドで送信されたパラメータのフォーマットが異なることが要求されています.axiosデフォルトパラメータフォーマット
axios
のデフォルトのパラメータフォーマットはapplication/json
であり、バックグラウンドに渡されるパラメータはシーケンス化されたjson
文字列である.しかし、このプロジェクトでは、バックグラウンドにapplication/x-www-form-urlencoded
というフォーマットのデータが必要です.解決方法:
1:/* api.js qs*/
import qs from 'qs'
2:/* axios */
post : async function(url, options) {
var resultData = await new Promise((resolve, reject) => {
axios.post(API_ROOT + url, qs.stringify(options)).then((response) => {
resolve(response.data)
}).catch((error) => {
reject(error)
})
})
注意:このプロジェクトは私が
Vue-cli
で構築したプロジェクトで、qs
資源を直接導入すればいいです.そうしないと、ダウンロードしてから引用しなければなりません.二:vueのドロップダウンボックスでv-forを使用するレンダリングの問題
プロジェクトでは、ドロップダウンボックスの内容が多いので、配列ループを使用してレンダリングします.使い始めたばかりのレンダリング方式ですが、互換性があり、プロジェクトは火狐とIEブラウザでデータレンダリングができません.
その後、このようなフォーマットに変更すると正しいです.
亲测有用,ღ(´・ᴗ・`)比心