質問: この投稿は前回の続きになります。 ajaxのurlをphpタグで書きたい https://teratail.com/questions/30151 素晴らしき回答者様のおかげでphpタグを読み込むことはできたのですが、 いくつか問題が起きました。 1.ajaxのurlを`url: "Html->url('/Sample/sample/', true); ?>",`または`url: "html->url(array('controller' => 'Sample', 'action' => 'sample')); ?>",`にすると挙動がおかしくなる。 以下のようにindex.ctpが読み込まれてしまう。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/348559a6f4894bcb82902a1c580ea600.png) もちろん`url: "http://localhost/cakephp3/Sample/sample",`だとうまくいきます。 2.index.ctpのid`sample.js`を`sample_js`や`sample`にして、それに合わせてsample.jsのajax内も `url: $('#sample_js').data('url'),`のように書き換えるとなぜかajaxが失敗する。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/28ae94ec5a1902c9a9c548936794f895.png) もしこの2つの挙動についてわかる方がいらっしゃたら教えて下さい。お願い致します。
回答: 一連の質問を拝見していると、WEB アプリの基本的な仕組みをきちんと理解されたうえで作ってらっしゃるのか疑問に思ってしまうところがあります。「PHP はサーバ側で解釈され、ブラウザには HTML, css, js, 画像ファイル, JSON などの形で送信される(したがって PHP のコードは残っていない)」「JavaScript はブラウザ側で実行される」という辺りの基本は大丈夫でしょうか。 さて、(1) は、挙動からすると `.ajax()` に渡している `url` の値がおかしいわけです。予想としては `url` が空になっているので現在のページへのリクエストが飛んじゃっているのかな、と思いましたが、ともかくこの `url` がどうなっているか確かめる必要があると思います。調べ方としては、(1) ブラウザが表示しているページのソースを確認する、(2) ajax 呼び出しをキャプチャしてどの URL に飛んでいるか調べる、などが考えられます。 (2) は 404 Not Found になっている URL は `http://localhost/cakephp3/` の後に`