vueプロジェクトで発生した問題のまとめ

2519 ワード

一:axios用postパラメータのデータフォーマット
これまでプロジェクトをしていたとき、パラメータがバックグラウンドに伝わるフォーマットに気づかなかった.一般的には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ブラウザでデータレンダリングができません.


その後、このようなフォーマットに変更すると正しいです.


亲测有用,ღ(´・ᴗ・`)比心