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

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

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

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

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

1777閲覧

javascriptでrequest headerに任意の値を含めて画面遷移する方法を知りたい

widget11

総合スコア221

Vue.js

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

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/01/27 18:30

rails+vue(axios)でToken認証を試していて、ログイン認証後画面遷移を行いたいのですが、
遷移したいurlがvue-routerで定義したものではなくrailsのrouts.rbで定義しているものに遷移したいです。
今致し方なく、axios.postで認証を行い200やresponseにtokenが返ってきた後、
window.location.href = 'http://localhost:3000/api/v1'という様な形で画面遷移を行っていますが、
window.location.hrefですとrequest headerにtokenなどを含めてrequestを行えないので、
認証済みユーザーではない状態で遷移してしまいます。
その為、javascriptでrequest headerに値を含めてrailsで定義したurl(アクション)に遷移する方法を教えていただきたいです。
該当のコードは以下になります。

/* 現在のコード */ axios .post("http://localhost:3000/api/v1/auth/sign_in", { email: this.email, password: this.password, }) .then((response) => { localStorage.setItem("access-token", response.headers["access-token"]); localStorage.setItem("uid", response.headers["uid"]); localStorage.setItem("token-type", response.headers["token-type"]); localStorage.setItem("client", response.headers["client"]); localStorage.setItem("expiry", response.headers["expiry"]); window.location.href = 'http://localhost:3000/api/v1'; })

返ってきたレスポンスをweb storageに保存しており。
こちらの値を使いheaderに含め window.location.href = 'http://localhost:3000/api/v1';から、何かに置き換えたいです。
調べてみたのですが、axios.getを使うとvue-routerを使う必要があるらしく、極力rails routerを使用したいのもあり、なかなかいい検索結果ができません。
どうしたらrequest headerに値を含めることができるでしょうか?
ご回答よろしくお願いします。

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

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

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

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

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

maisumakun

2021/01/28 00:50

APIなのに、ブラウザ遷移でアクセスしないといけないのですか?
widget11

2021/01/28 11:23 編集

ご返信ありがとうございます。 端的にいうとerbないしroutes.rbを使ったいわゆるrailsの遷移を行いたい為です。 認証周りはお試しで以上の様にvueを使っていますが、そもそもvueに慣れていない、知見がないというのもありそれ以降のフローはvueを使わずrails(APIモードではない)+erbでよしなにやりたく、 @userなどインスタンス変数の様なrailsの基本形でviewに値を渡す、link_to, button_to,redirect_toなどのヘルパーで遷移まわりを制御したく、ブラウザ遷移でアクセスしたいと考えております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問