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

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

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

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

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

1回答

2122閲覧

解決はしていますが謎 Laravel、pusher、laravel-echoでチャットを動かしたいけどエラー、原因はCORS???

kipipipi

総合スコア60

Laravel

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

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2020/10/05 12:56

編集2020/10/15 11:24

ubuntu 18.04
laravel 7.25
php 7.4
さくらvps

の環境でチャットを作ろうとしています。
デプロイも完了、404の大量発生も何とか自力で超えたのですが、最後にpusherと通信ができず困っています。

まず、チャットページを開くとwebsocketがちゃんと動いている?のかなと思ったら、ディベロッパーツールのコンソールを覗くと永遠にエラーを吐き出している模様。

エラーを調べると、CORSの問題?っぽいのですが、初めて聞いたので全く歯が立たなくなってしまいました。。。

また、当然以上のことからpusherと繋がっていないので、チャットのメッセージを送っても500番が返ってくるのでチャットの更新は起こりません。

また、チャットは下記のURLを参考にしています。
私にはまだ早かったようですが、締め切りもあるので是非動かしたいと思っています。
Laravel+Vueでリアルタイム・チャットをつくる

エラーは以下の画像のように永遠と流れています。(スピードはゆっくりですが)
イメージ説明

Laravel 内から外部のAPI(今回はpusher)へ繋ぐときには,基本的にCORS問題は避けて通れないあたり前の手順でしょうか?
ローカルでは普通にチャットは動いていましたし、特に動いていたコードをいじってはいないです。(この問題の解決方法が分からなかったので、pusherのapi周りは少し触りましたが、今は戻しています)

こうなってしまってはもう復帰?は無理でしょうか。。。

何かお気づきがありましたら、コードもできる限りお見せするのでアドバイスを頂けると嬉しいです。

宜しくお願いします。

2020/10/5 午前

昨日全くデータが遅れなかったのに、今朝適当にコメントをチャット欄に打って送信したら、pusherへデータが送信できていた。
ログインユーザーのログインが外れていたので、ログインし直しただけしか変わったことはしていません。
謎です。。。
1.さくらのサーバー側で変更が効いていなかった(時間置いたら効いた??そんなことあります?以前も、時間をおいたら動いていたってことがありました。妄想偶然でしょうか。。。)
2.laravelのセッション系などが悪影響を及ぼしていた?
今こう考えています。
ちなみに、ディベロッパーツールのエラー群は変わらず同じ情報を流しております。
CORSのエラーについて今調べておりますが、こちら現在サクラより割り振られたipアドレスを使用しているからではないかと思っていますが、見当違いならすみません。
pusherにて

2020/10/5 午前2

違うミスをしてしまい、作り直した方が早いと思い

composer require pusher/pusher-php-server

でバージョン4.1をインストールしたところ、送信の通信(POST)がエラーを吐かなくなりました。
イメージ説明
逆にGETが500番エラーを吐くので原因調査に乗り出します。
古いpusher/pusher-php-serverはやめておいた方が良いなというのが今のところの印象です。

2020/10/5 午前3

##動きました!!でも。。。そんなのアリ?!
どこまで動いているか確かめようと

\Log::debug('here!');

とかをcontroller内に書き込んでいました。
なぜか書き込むとpostもエラーなるなと思って問題を起こしているcontroller内部(GETするメソッド内などから)から先程のdebugメソッドをコメントアウトすると問題なく動作しました!

書いたままでもローカルでは動いていましたし、デバッグバーを現在も出しています。
なぜこのメソッドが原因なのでしょうか??

もしこれが本当の本当にエラーの原因であると、動作不良になった時に検証すればするほど沼にハマってしまいます。
お分かりになる方はいらっしゃいますか??

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

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

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

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

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

hentaiman

2020/10/15 11:29

debugログの出力先ディレクトリの存在や権限のチェックしてみては? エラーログ見るのが一番にやることですが
guest

回答1

0

エラーが出すぎなので、一つずつ潰していかないと原因はわからないというか
原因が複数ありそうですね。
ある程度潰したら、コードも載せたほうが解決が早いと思います。

投稿2020/10/05 13:13

firegrape

総合スコア902

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

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

kipipipi

2020/10/05 13:21

ご協力ありがとうございます。 こちらは出ているのは同じものでずっと繰り返されています。。。 また、チャットを開かなくても別のページでもバックで動いているのが気がかりです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問