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

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

新規登録して質問してみよう
ただいま回答率
85.35%
さくらのレンタルサーバ

さくらのレンタルサーバとは、格安サーバーで知られるさくらインターネット社の提供する共有レンタルサーバー。Webサイトの構築から簡単なプログラミングまで幅広く利用することができ、プランが多いことも特徴です。

Ajax

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

2回答

2271閲覧

本番環境でのAjax通信エラーについて

pararinrinrin

総合スコア26

さくらのレンタルサーバ

さくらのレンタルサーバとは、格安サーバーで知られるさくらインターネット社の提供する共有レンタルサーバー。Webサイトの構築から簡単なプログラミングまで幅広く利用することができ、プランが多いことも特徴です。

Ajax

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2020/08/02 03:49

laravelアプリを本番環境(さくらレンタルサーバー)にデプロイ後、動作確認をしているのですが、
ローカルで正しく動作していたAjax通信の処理が本番では失敗してしまいます。

イメージ説明
イメージ説明
クエスチョンマークを押すと日付ごとに設置したメモがダイアログとして表示され、削除ボタンをおすとメモが削除されホーム画面(/home)にリダイレクトする仕組みなのですが、本番環境においては作成したメモにたいして削除ボタンを押してもエラーメッセージが表示されてしまいます。

layout.blade.php

1 2 <script> 3 $(function() { 4 5 //上記処理省略↑ 6 7 8 /*モーダルダイアログ*/ 9 $('#Modal').on('show.bs.modal', function(event) { //ID部分をモーダルとして表示させるイベントが発生 10 11 $('.modal-content tr').remove() //li要素をあらかじめ初期化 12 13 var button = $(event.relatedTarget); //モーダルを呼び出すときに使われたボタンを取得 14 15 var date = button.data('day'); //日付を取得 16 var data = button.data('task'); //予定を配列で取得 17 var id = button.data('id'); //予定に付随したidを配列で取得 18 19 var modal = $(this); //モーダルを取得 20 21 $('.modal-title').text(date + '日の予定'); //日付をモーダルに反映 22 23 for (var i = 0; i < data.length; i++) { 24 $('.contents').append('<tr><td>' + data[i] + '</td><td><button type="submit" class="delete" value="削除" data-delete="' + id[i] + '"><i class="fas fa-trash-alt"></i></button></td></tr>'); //予定とidをモーダルに反映 25 } 26 27 /* Ajax で削除機能実装*/ 28 $('.delete').click(function() { 29 //クリックしたボタンのdata属性からidを取得し、同じidを削除する 30 var id = $(this).attr("data-delete"); 31 32 $.ajaxSetup({ 33 headers: { 34 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 35 } 36 }); 37 38 $.ajax({ 39 url: "/home/month/" + id, 40 type: 'POST', 41 data: { 42 'id': id 43 } 44 }) 45 // Ajaxリクエストが成功した場合 46 .done(function(data, textStatus, jqXHR) { 47 //homeに遷移 48 window.location = '/home'; 49 }) 50 // Ajaxリクエストが失敗した場合 51 .fail(function(data, textStatus, jqXHR) { 52 alert('失敗' + ',textStatus:' + textStatus + ',jqXHR:' + jqXHR); 53 }); 54 }) 55 }) 56 }); 57 </script>

他にあげるべきソースコードがありましたらご指摘ください。
この場合、どこに問題があることが予想されるでしょうか?

おそれいりますが、よろしくお願いいたします。

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

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

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

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

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

m.ts10806

2020/08/02 04:21

コードはどこまで正常に通ってますか? サーバー側のエラーログになにか出てませんか?
退会済みユーザー

退会済みユーザー

2020/08/02 04:57

エラーメッセージは Not Found なので jQuery ajax のコードの要求先即ち url: "/home/month/" + id, が間違っているのでは?
pararinrinrin

2020/08/02 06:35

検証のconsoleで確認した限りでは、POST "URL" 404との記載があります。 XMLHttpRequestがundefined、textStatusがNot Foundとなっています。
退会済みユーザー

退会済みユーザー

2020/08/02 06:48

話が通じてますか? 404 Not Found 応答が返ってきているということは、要求は Web サーバーまで届いており、Web サーバーは ajax の url パラメータに指定されている場所にリソースを探しに行ったが、見つからなかったと言うことなのです。ということは url: "/home/month/" + id, の指定が間違っている以外には考えられません。
pararinrinrin

2020/08/02 07:23

「url: "/home/month/" + id, の指定が間違っている」とのことですが、本番環境でのみ起こるエラーとしてはどのような説明が成り立つのでしょうか?
退会済みユーザー

退会済みユーザー

2020/08/02 07:36

> 本番環境でのみ起こるエラーとしてはどのような説明が成り立つのでしょうか? 質問者さんの開発環境も本番環境も知らない第三者が答えられるようなことではないです・・・が、IIS などでよく聞く話で、開発環境ではサイトに設定しているが本番環境ではアプリケーションに設定している(またはその逆)とか、アプリケーションのエイリアスが違うということが思いつきます。 とにかく、そういうことを聞く前に、指摘したことを調べてみませんか。
guest

回答2

0

ご回答いただいたみなさまありがとうございました!
home/monthの箇所を、todo/home/monthとしたらうまくいきました。
本番環境で仕様しているドメイン(アプリ名)も記載しないといけなかったようです。

投稿2020/08/16 12:08

pararinrinrin

総合スコア26

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

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

0

ベストアンサー

なんとも言えませんが、idで終わるurlはおそらくhttpdで
rewriteして別のプログラムに転送しているのでは?
本番環境にその設定がしていないのでidにあたる文字を
まともに探して見つからないと返しているとか・・

投稿2020/08/04 00:48

yambejp

総合スコア116734

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問