javascirptでaxiosを実行すると、サーバーには送信できるのですが、
クライアント側でResponseステータスコードはわからないのですが、
catchが出てしまいます。
その引数に設定しているresponseにはTypeError: Cannot read property 'hide' of undefinedが入っています。
原因がわからなく、どなたかご教授お願いします。
javascript
1// application/jsonで送信するとうまくいく 2onModalSubmitClicked() { 3 const viewModel = JSON.parse(JSON.stringify(this.viewModel)); 4 5 axios({ 6 method: "post", 7 url: this.createUrl , 8 headers: { 9 "Content-Type": "application/json; charset=UTF-8" 10 }, 11 data: JSON.stringify(viewModel) 12 }).then(() => { 13 console.log("OK"); 14 }).catch((response) => { 15 console.log("NG"); 16 }); 17},
javascript
1// params: { id: 1, order: 10 }の形式で送信すると、サーバーは実行できるが、クライアントでOKにきた後、NGにいってしまう 2onRowDragEnd(event) { 3 axios({ 4 method: "post", 5 url: this.sortUrl, 6 params: { id: 1, order: 10 } // ダミーデータ 7 }).then(() => { 8 console.log("OK"); // OKにきた後、NGにいってしまう 9 10 }).catch((response) => { 11 console.log("NG"); 12 }); 13},
then() 部のコードは本当に console.log("OK"); だけですか?
コメントありがとうございます。
dataのundefinedのエラーだったのはコードのまちがいだったためすみません。
質問文を訂正させていただきました。
ただし、依然としてaxiosを実行すると、サーバーにpostできて処理は正常ですが、
javascript側でcatchが発生して困っています。
> catchが発生して困っています。
それはどこかで例外が発生しているからです。その例外を直しましょう。
質問文にはエラーメッセージも例外を出すコードも提示されていないので、具体的なアドバイスができません。
再度確認したところ、コンソールエラーはでていないのですが、responseにTypeError: Cannot read property 'hide' of undefinedが入っている状態です。
原因としてはどのようなものが考えられるでしょうか?
then() 部のコードの中でその例外が発生しています。これ以上はコードが提示されていないのでアドバイスできません。
axiosの例外がわかりにくいなと感じますが、それを調べる方法があればよいのですが。
質問分に記載しているコードのとおりです。
onRowDragEnd(event) { // ←普通のtest() とかでも同じ {
axios({
method: "post",
url: this.sortUrl,
params: { id: 1, order: 10 } // ダミーデータ
}).then(() => {
console.log("OK"); // OKにきた後、NGにいってしまう
}).catch((response) => {
console.log("NG");
});
}
>then() 部のコードの中でその例外が発生しています。これ以上はコードが提示されていないのでアドバイスできません。
アドバイスありがとうございます。原因がわかったかもしれません。
たしかに、console.log("OK"); の次行に自作のfunctionをはさんでいたのが原因のようです。
もう少し調べてからご返信させて頂きます。
コードを記載していませんでした部分ですが、自作のfunctionで表示していないBootstrapのモーダルを閉じようとしていたのが原因でした。
(登録、更新、削除、並替で同じ処理をしようとしていた)
onSuccess() {
this.myModal.hide();
}
↓とりあえずフラグで分岐しました。
//
onSuccess() {
if (this.isEditStatus == 1 || this.isEditStatus == 2 || this.isEditStatus == 3) {
this.myModal.hide();
}
}
>then() 部のコードの中でその例外が発生しています。これ以上はコードが提示されていないのでアドバイスできません。
→ これがとてもヒントになりました。アドバイスありがとうございます。
回答1件
あなたの回答
tips
プレビュー