axios送信jsonバックグラウンドで受信できない問題を解決する
1691 ワード
問題の説明
axiosの公式サイトの例に従ってjsonの伝達を要求し、バックグラウンドで受け取ったデータは空で、options段階にカードがかかっている.
試し方
最初はインタフェースに問題があると思っていたが、postmanテストを使って、すべて正常で、何も考えられず、issueをたくさん見ても解決できず、
公式サイトによると、jsonは
それから自分の前のコードをひっくり返して、书き方が同じで、バージョン番号の问题だと疑って、しかし==ではありません...サービス側と関係がある可能性があることを考慮します.
元のコードは次のとおりです.
最后に考えてみると
解決策
コード:
axiosの公式サイトの例に従ってjsonの伝達を要求し、バックグラウンドで受け取ったデータは空で、options段階にカードがかかっている.
試し方
最初はインタフェースに問題があると思っていたが、postmanテストを使って、すべて正常で、何も考えられず、issueをたくさん見ても解決できず、
headers:{'content-type':'application/json'}
を加えても役に立たなかった.公式サイトによると、jsonは
application/json
で処理されたが、卵用はなかったという.その後、JSON.stringify(data)
content-type
がフォーム形式に変更されました==それから自分の前のコードをひっくり返して、书き方が同じで、バージョン番号の问题だと疑って、しかし==ではありません...サービス側と関係がある可能性があることを考慮します.
元のコードは次のとおりです.
import axios from 'axios';
export default function request(url, params) {
return axios.post(`xxxxxx/${url}`, params)
.then((response) => {
console.log('response', response);
return response;
})
.catch((error) => {
console.log('error', error);
return error;
});
}
最后に考えてみると
fetch
を使いましょう(确かに使って、やはりこの问题があることを発见して、今深く疑ってサービス侧がパラメータのタイプカードのあまりにも死んで、polyfillの问题があって放弃して、もし知っている小さい仲间があれば伝言を残して私に教えて、ありがとうございます)、本当にだめならajax
(promiseにカプセル化して泣く).axios
へのこだわりから、やっと解決策を見つけた.解決策
qs
ライブラリを追加し、jsonをシーケンス化して渡します.詳細はこのissueを参照してください.コード:
import axios from 'axios';
import qs from 'qs';
export default function request(url, params) {
return axios.post(`https://xxxxxxxx/${url}`, qs.stringify(params))
.then((response) => {
console.log('response', response);
return response;
})
.catch((error) => {
console.log('error', error);
return error;
});
}