Vue.jsの中でpostすると2重送信してしまい困っています。
下記はaxiosでpostを試しているコードです。
また、javascriptのfetch、jqueryの$.ajaxでも試してみましたが同様の現象が起きています。
どなたかご教授をお願いします。
scriptはhtml内から下記で読込してます。
html
1<script src="~/lib/vue/vue.global.js"></script> 2<script src="~/lib/axios/axios.js"></script>
実行しているコード
javascript
1const app = Vue.createApp({ 2 methods: { 3 onModalSubmitClicked() { 4 axios({ 5 method: "POST", 6 url: "/Members/Edit/", 7 data: JSON.stringify({ Id: 1, Name: "TEST1"}) // サーバー側の都合によりPost時のみアッパーキャメルケースです 8 }).then((response) => { 9 alert("a"); 10 }); 11 } 12 }, 13});
キャプチャソフトでモニタリングしてみましたが、6046の行にはデータ有り、
6047の行にはデータがないのですが、クエリ文字列で表示されてます。
キャプチャデータ
txt
1# Result Protocol Host URL Body Caching Content-Type Process Comments Custom 26046 - HTTPS localhost:50000 /Members/Edit/ -1 chrome:15064 36047 - HTTPS localhost:50000 /Members/Edit/?Id=11&Name=%E9...
6046行のjsonデータ
txt
1{"Id":1,"name":"TEST1"}
サーバー側のコントローラになります。
C#
1public async Task<IActionResult> Edit(Member member) {
Viewになります。
このコードでaspのタグを使用していますが、nameとして使用しているのみです。
Vueのコードではmemberを省略してますが、実際には記載しています。
html
1 <form id="form0"> 2 <div class="modal-content"> 3 <div class="modal-body"> 4 <div class="form-horizontal"> 5 <input type="hidden" asp-for="Id" v-if="member" v-bind:value.trim="member.Id" /> 6 7 <div class="form-group row"> 8 <div class="col-md-3"> 9 <label asp-for="Name"> 10 </div> 11 <div class="col-md-9"> 12 <input asp-for="Name" class="form-control form-control-sm" style="width: 100%;" v-if="member" ref="focusModal" v-bind:value.trim="member.Name" /> 13 </div> 14 </div> 15 </div> 16 </div> 17 18 <div class="modal-footer"> 19 <button type="button" id="modalSubmit" class="btn btn-primary btn-sm" v-bind:disabled="isDisabled" v-on:click="onModalSubmitClicked">更新</button> 20 </div> 21 </div> 22 </form>
回答1件
あなたの回答
tips
プレビュー