• Lesson3にも
    跨る質問になります。 解説の中でapp.jsの8行...
  • ゆるおじゆるおじ 
    Lesson3にも跨る質問になります。

    解説の中でapp.jsの8行目のurl:'ajax_html.php',の中身をajax_sample.phpやajax_json.phpに書き換える箇所がありますが、urlを書き換えても常にajax_html.php「名前は〜で、年齢は〜です。」のまま表示されます。

    試しにurlの中身を何も書かずにajax_html.phpも消した状態で表示しましたが、「名前は〜で、年齢は〜です。」と表示されます。

    ファイルの上書き保存はしています。
    同じフォルダ内のindex.php等の中身を書き換えるとしっかり反映されます。
    開発ツールでソースを確認するとapp.jsのurlを何に書き換えてもajax_html.phpとなっているので、書き換えた内容への変更が効いていないようです。

    なぜurlを書き換えても変更が反映されないのか分からないので、検討すべきこと等教えて頂きたく質問させてもらいました。

    回答 2

    ウェブカツコーチ 
    講師からの回答
    「ファイルの変更をしたはずなのに何故か正常に反映されず、修正前の状態のままである」といった状況は現場でもよく遭遇します。そのような際は、まずキャッシュが原因ではないかを疑いましょう。

    キャッシュはサイトの高速化において非常に大切な役割を果たしています。
    (参考1:https://qiita.com/kazukichi/items/572fc7198e6bb001b25
    一方で、キャッシュが残っているとブラウザはそれをもとにページを表示しようとし、結果HTMLやJSへ行った修正が反映されず、以前表示した古い情報のまま出力されてしまうことがあります。

    今回の状況的を伺うに、キャッシュが悪影響を及ぼしている可能性が高いので、まずはChromeの履歴削除からキャッシュの削除を行い、app.jsへの修正が反映されるか再度試してみてください。

    因みにわたしはキャッシュ削除の度に履歴の削除をするのが面倒なので、「Clear Cache」というChromeの拡張機能をインストールして使用しています。

    また、下記参考Qiitaのようにブラウザキャッシュを使わない設定をhtmlに行う事もできます。
    (参考2:https://qiita.com/masakazu_ca/items/5b6247c240408b4cd16b )

    もしキャッシュの削除を行っても問題が解決しない場合は、編集しているファイルがブラウザ上で表示しているものでない可能性もあるので、念の為そのあたりも確認してみてください。

    ゆるおじ 
    回答ありがとうございます。

    回答に書かれたChromeの履歴削除からキャッシュの削除を行った後から、それまでは出来ていた「ここだけが入れ替わります」の部分に「名前」と「年齢」が読み込まれなくなりました。

    開発ツールを見るとindex.phpを読み込んだ時点で


    Access to script at 'https://code.jquery.com/jquery-3.2.1.min.js' from origin 'http://localhost:8888' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.


    Uncaught ReferenceError: $ is not defined at app.js:1


    GET https://code.jquery.com/jquery-3.2.1.min.js net::ERR_FAILED

    という3つのエラーが出ていました。

    ①について自分で調べてみましたが、「ローカルホストがjQueryのアクセスをCORS Policyに引っかかって許可しないっぽい」ということしか分からず、こうなっている原因が何なのか、何をすれば元のように「名前」と「年齢」が表示されるのか分かりません。

    上記の質問と関連しているのか、それとも全く関連していないのかも分かっていません。
    上記の質問が解決する以前の問題になってしまいましたが、ご教授願います。

    ウェブカツコーチ 
    講師からの回答
    私のMacでもキャッシュをクリアすると、jQuery公式のCDNページの閲覧ができなくなり、コンソールに同様のエラー内容が表示されるようになりました。
    今回の件について調べてみると、どうやらjQuery公式のCDNが不具合を起こしているようで、結果CDNの読み込みに失敗してjQueryが使えなくなっていました。

    なおキャッシュクリア前は正常に動いていたのは、以前読み込んだjQueryをキャッシュから読み込んでいたからだと考えられます。

    jQueryは公式以外にも、GoogleやMicrosoftがCDNを使ってファイルを配信しています。上記検証でエラーが出た際は、公式以外で公開されているCDNを使用しましょう。

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

    私の環境でも、index.phpの<script src=“〜”>部分を上記のGoogleのCDNで置き換えることで、正常に動くようになりました。

    このようなケースは稀だとは思いますが、一度検証みてください。