我試圖用ajax和php輪詢應用程序林書寫。 PHP本質上接收一個字符串化的對象放入一個文件中,以後可以讀取。我寫的對象工作得很好。我現在的問題是,如果PHP試圖讀取一個不存在的文件,它似乎會返回一個錯誤代碼給$ .post()調用。我希望它能夠返回JSON和成功,以便我可以處理有點不同。問題與PHP文件I/O和ajax
有問題的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按預期工作,否則。此外,輪詢確實是按照應該的頻率調用服務器。有關修復此問題的任何建議如果您需要更多信息,請直接詢問。謝謝!
硬編碼您發送給PHP的數據並直接在瀏覽器中訪問它。這樣你可以看到這是否是問題。 – Jordan 2013-05-01 19:37:37
我知道它傳遞的是正確的,但問題是檢查文件是否不存在。我知道它現在不存在,所以它不能打開。我需要安全地檢查文件是否打開,如果沒有(它有問題或不存在),然後返回json這樣說。但現在,php只是失敗了,所以json不會返回。 – samuraiseoul 2013-05-01 20:02:54