質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

Q&A

0回答

2393閲覧

axiosのpost処理をlaravelでした後にlaravel側でそのままレダイレクトさせることは可能なのか?

tenlife

総合スコア70

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

0グッド

1クリップ

投稿2020/09/04 01:32

編集2022/01/12 10:55

ボタンをクリックしたユーザーとのルームを作成、そのままルームに飛ばす。という処理を実装しています..

vue.jsのaxiosで送信しています。

解決したいこと: axiosのpostの後にそのままコントローラー側のリダイレクトでページ遷移させたいです。

現状: vue側に戻ってしまうのでパスを作り、window.location.hrefを使って無理やり遷移している感じがします。

vue

1 build_room(login_user_id,id) { 2 var array = ["http://127.0.0.1:8000/user/", id, "/room"]; 3 // パスをjoinで結合 4 const t = array.join('') 5 axios.post(t).then(res => { 6 let user_id = res.data 7 var array = ["http://127.0.0.1:8000/user/", login_user_id, "/room_redirect/", user_id]; 8 // パスをjoinで結合 9 const url = array.join('') 10 window.location.href = url 違和感ポイントです。 11 }).catch(function(error) { 12 console.log(error) 13 }) 14 }

controller

1 public function create(User $user) 2 { 3 $login_user = Auth::user(); 4 if(!$login_user->isMessaged(Auth::id(), $user->id)) { 5 $room = new Room(); 6 $hash = $login_user->id + $user->id; 7 $room->name = Hash::make($hash); 8 $room->save(); 9 $room->users()->attach([$login_user->id, $user->id]); 10 return $user->id; 11 } 12 }

試したこと

コントローラー側でreturnをリダイレクトに設定。 -> ページ遷移せず。 コンソールにはhtmlが表示される。 return $user->id; 変更前 return redirect()->route('message_room_redirect', ['user' => $login_user->id, 'another_user' => $user->id]); 変更後

axiosでpostしてしまうとコントローラー側のリダイレクトは効かなくなってしまいます。vue側に返り値が帰ってくるので返り値を使いその後に再度遷移させる流れになっていますが、vueに帰らずにそのままコントローラー側でリダイレクト(遷移)できないのだろうか?と考えています。

axiosのpostで送信後に、コントローラー側でそのまま(viewに)リダイレクトさせる方法はないのでしょうか?

お分かりになる方がいましたら、ご教授いただきたいです。
よろしくお願いいたします。

vue.js 2.6.11
laravel 7系

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問