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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Laravel

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

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Q&A

0回答

1310閲覧

デプロイしたらwebアプリが動かなくなりました

sagitarou

総合スコア7

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Laravel

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

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

0グッド

0クリップ

投稿2020/11/13 04:59

編集2020/11/13 05:34

localでwebアプリケーションを作成していました。
localhostでbackendとflonrendを繋いだ際は完璧に動いたのですが、herokuでデプロイすると "httpErrorResponse {headers: HttpHeaders, status: 0, statusText: "Unknown Error""
と出てしまい、webアプリが機能しなくなってしまいました。

調べてみるとCORSが原因だと分かったのですが、下記のコードの設定でなぜダメなのかがわからないので助言をいただきたいです

PHP

1cors.php 2 3public function handle($request, Closure $next) 4 { 5 return $next($request) 6 ->header('Access-Control-Allow-Origin', '*') 7 ->header('Access-Control-Allow-Methods', 'GET, POST') 8 ->header('Access-Control-Expose-Headers', 'Authorization') 9 ->header('Access-Control-Allow-Headers', '*'); 10 }

typescript

1{ 2prokty.conf.ts 3 "*/api": { 4 "target": "mybackendherokuappURL", 5 "secure": true, 6 "changeOrigin": true, 7 "pathRewrite": { 8 "^/api": "" 9 } 10 } 11}

使用言語(フレームワーク)はフロントエンドがAngular,バックエンドはlaravelを使用しています。
ブラウザとサーバー間はAPI通信です

!イメージ説明

黒く塗りつぶしている部分はbackendへのURLです

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

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

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

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

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

hentaiman

2020/11/13 05:01

CORSって事はフロントとバックエンドでドメイン違うんですか?
sagitarou

2020/11/13 05:03

はい。違います。フロントとバックを分離して作成し、それぞれでデプロイしています
hentaiman

2020/11/13 05:09 編集

レスポンスは200OK以外を返しますか? 200OKだったら動きますか?
sagitarou

2020/11/13 05:16 編集

開発者ツールのNetworkタブに書かれているレスポンスは(falled)net::ERR_FAILEDとかえってきています consoleに書かれているレスポンスstatusは0でした
hentaiman

2020/11/13 05:17

CORSのエラーだったら(サーバー側に関しては)今の設定でも正常レスポンスなら返ってくると思うし、サーバー側が正常動作した上でエラーを返しているのならエラーログには何も出ていないと思うけど、その辺り問題無いですか?処理エラーありませんか? あとangularの事は分からないですが、単純にcors設定を忘れているとかはないですか?
sagitarou

2020/11/13 05:24

すいません。もしかしたらサーバー側が正常に動いていない可能性が出てきました。 フロント側をhocalのままデプロイしているサーバー側にアクセスしても同じエラーが出てきました。 あと、angularにはcorsの設定はしていないです。やり方わかりませんでした
hentaiman

2020/11/13 05:28

そうですか CORSのエラーならもっと別の内容が出てくるはずで、 > {headers: HttpHeaders, status: 0, statusText: "Unknown Error"" 少なくともこの部分を省略せず全て見せてくれないと原因予測すらできません > angularにはcorsの設定はしていないです。やり方わかりませんでした 生javascriptだとあるので、angularにもあると思うので調べてみてください。※先に書いた通り自分は分かりません
sagitarou

2020/11/13 05:30

ありがとうございます。 errorの部分の詳細に表示したものを追記させていただきたいと思います
sagitarou

2020/11/13 05:45

サーバーが返しているステータスコードが(failed )net::ERR_INVALID_REDIRECTとなっています
hentaiman

2020/11/13 05:52

それはクライアント側で確認できるログですよね?サーバー側のログ表示がそれですか?
sagitarou

2020/11/13 06:31

Networkタブのアクセスnameの横にあるstatusがサーバーの返しているステータスコードではないのでしょうか。その辺があまり分かっていなくて、申し訳ないです。
sagitarou

2020/11/13 07:22

ありがとうございます。 backendから返ってきているstatusなのですが301でした
sagitarou

2020/11/13 08:20

ありがとうございます。 cors以前のプログラムの問題なのでしたら、なぜ両方localで動かした時には動いてデプロイした途端動かなくなったのかという疑問が残ってしまいます。
hentaiman

2020/11/13 08:25

それは質問者自身にしか分かりません CORSを疑うのならlocalでフロントとバックでドメイン変えて試してみれば? それでも同じ現象が起きるならプログラムが悪いし、起きないならherokuの反映する上での設定が悪いんでしょう
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問