jsのコードが相手側に知られている時点で完全な防御方法はないと思いますが、一つ目の方法はコメントに書かれているように、問い合わせ時に何らかのパスコードを送る方法です。
PHPが受け取ったリクエストデータの中に定められた文字列があるかどうか見定めて、それによってデータの送信処理を行います。
ただこの方法は、js以外のアクセスができないことに疑問を持った人がjsのコードを解析すればわかります。
コードを難読化させるという手もありますが、あまり現実的ではないでしょう。
2つ目の方法はjsを動的に生成することです。
htmlに書かれたjsが読み込まれようとしたら、その時点でPHPで時刻を何らかの暗号化関数に通したパスコードを発行し、javascriptに書き込みます。
1つ目の方法と同じく
javascriptからアクセスがあった場合はパスコードを復号化し、jsが読み込まれた時間を解析。
それによって、ajaxによるアクセス可能時間を読み込まれてから30秒、5分、10分などと自由に変更すればいいでしょう。
アクセス時にcookieに情報を書き込み、ajaxで取得する際にcookieを利用して判定するという手もあります。
http://www.itmedia.co.jp/enterprise/articles/0608/10/news019_3.html