私が書いているアプリの ajax と php でポーリングしようとしています。php は基本的に文字列化されたオブジェクトを受け取り、後で読み取ることができるようにファイルに入れます。オブジェクトへの書き込みが正常に機能しています。私が今抱えている問題は、php が存在しないファイルを読み取ろうとすると、 $.post() 呼び出しにエラー コードが返されるように見えることです。JSONと成功を返すようにしたいので、処理は少し異なります。
問題のphpは次のとおりです。
public function read(){
$id = $this->input->post('id');
$test = fopen("./meetings/".$id.".mt", 'r');
if(!$test){
error_log("Unable to open file, you mutt!");
echo json_encode(array('status' => "FAIL"));
}else{
error_log("Here! 2");
$obj = array();
while(!feof($test)){
error_log("Here! 3");
$tmp = fgets($test);
error_log("Here! 4");
if($tmp){
$obj[count($obj)] = $tmp;
}
}
fclose($test);
error_log("Here! 5");
if(!count($obj) > 0){
echo json_encode(array('status' => "FAIL"));
}
echo json_encode(array('status' => 'OKAY', 'obj' => $obj));
}
}
Javascript(jqueryを使用)は次のとおりです。
function read(){
$.post('<?php echo base_url(); ?>meetings/read', {id: <?php echo $id;?>}, function(json){
console.log(json.status);
if(json.status == 'OKAY'){
for(var i = 0 ; i < json.obj.length ; i++){
parseObject(json.obj[i]);
}
}
}, 'json');
}
JavaScriptが成功関数に到達しません。使用して確認しajaxError()
ましたが、これを修正する方法がわかりません。または、phpがエラーを送信している理由でさえ、私はそれを求めていると思います。それ以外の場合、phpは期待どおりに機能します。また、ポーリングは実際に必要な頻度でサーバーを呼び出しています。これを修正するための提案はありますか? さらに情報が必要な場合は、お問い合わせください。ありがとう!