エコーでクライアントに応答できないため、本当に困っています。
次のデータを JSON で応答する必要があります。
header("Content-type: application/json");
$response = array();
$response['username'] = $user;
$response['password'] = $pass;
json_encode($response);
ただし、次のような HTML ファイルを介して行う必要があります。
Template::set('response', json_encode($response));
その理由は、私のフレームワークは常に次のようなページ出力を必要とするからです。
Template::set('response', array());
それ以外の場合は、それ自体を実行しようとします。(エラー ページまたは null html 応答のいずれか)
そのため、JSON ヘッダーとエコーで応答できません。私は基本的に回避策を見つけようとしていました。これを達成する方法がない場合は、ヘッダーで応答するようにフレームワークを少し調整しますが、可能であれば少し回避策を使用することを好みます。
Ps。ちなみに、これが私のjQueryの実行方法です。ここで問題はないと思いますが、間違っているかもしれないので、こちらもご覧ください。
$("#doLogin").click(function(e) {
e.preventDefault(); // prevent normal form submit
$("#login-result").html('<img src="<%THEME%>images/loading.gif">');
var formData = $("#loginForm").serialize();
$.post("?page=login", formData, function(response)
{
alert(response.username);
$("#login-result").html(response.username);
},'json');
});