2012-12-03 7 views
0

모든 호스팅 환경에서 올바르게 작동하지 않는 기능이 있습니다. 반환 된 데이터는 JSON 형식입니다. 문제는 eval()입니다. eval()에 대한 대안을 사용할 수 있습니까? 이 문제를 해결하거나 다른 대안을 제안 해주세요.잡히지 않은 SyntaxError : 예기치 않은 식별자 및 평가 대안

사흘 동안

, 나는 (단지 몇 hostings에 나타납니다 그러나 다른 사람에 잘 작동하는)

inLoad.php이

while($row=mysqli_fetch_array($sql)){ 
     $text=$row['mesg']; 
     $fro=$row['fro']; 
     $tocomr=$row['tocom']; 
     $last_msg_id_db=$row_m['maxid']; 


     $response=array(); 

     //$response['msg']=$table; 
     $response['msg']=$text; 
     $response['last_msg_id_db']=$last_msg_id_db; 
     $final_response[]=$response; 

    } 
      echo json_encode($final_response); 

하고있는 데이터를이 오류와 함께 내 머리를 scrathing하고 데이터는

[{"msg":"hi<br>","last_msg_id_db":"173"}] 
    main.php:96 

    main.php:96 
    [{"msg":"heloo<br>","last_msg_id_db":"174"}] 

으로 반환됩니다. jquery 함수는 다음과 같습니다.

function chat_com_one(id, name) { 
$('#chatcom').show('fast'); 
(function chatcom_load_one(id, name) { 

    $.ajax({ 
     type:"Post", 
     url:"load.php", 
     data:{ 
      tocom:id, 
      last_msg_id:last_msg_id 
     }, 


     success:function(data) { 

      var json = eval(data); 
      $.each(json, function(i, row) { 
       $("#commidwin").append(row['msg']); 
       last_msg_id = row['last_msg_id_db']; 
      }); 
      setTimeout(chatcom_load_one(id, name), 500); 
     }, 
     error:function(XMLhttprequest, textstatus, errorthrown) { 
      alert("error:" + textstatus + "(" + errorthrown + ")"); 
     } 




    }); 
}(id, name)); 
} 

아래의 오류가 크롬의 로그

Uncaught SyntaxError: Unexpected identifier main.php:95 
$.ajax.success main.php:95 
fire jquery.min.js:974 
self.fireWith jquery.min.js:1082 
done jquery.min.js:7788 
callback 
+0

"eval"기능이 "데이터"로받는 기능은 무엇입니까? 이 변수의 값을 제공하십시오. – izogfif

+0

@izogfif 내 질문을 업데이트하고 evaled.plz 검토 –

+0

"평가할 데이터"데이터를 추가했습니다.이 데이터를 생성하는 CODE가 아니라 DATA가 필요합니다. "var json = eval (data);"변수의 "data"값으로받은 기호는 무엇입니까? – izogfif

답변

0

평가 사용하지 마십시오에 제시되어있다. dataTypejson으로 설정하면 jQuery가 JSON을 디코딩합니다.

$.ajax({ 
    type:"POST", 
    url:"load.php", 
    dataType:"json", 
    data:{ 
     tocom:id, 
     last_msg_id:last_msg_id 
    }, 
    success:function(data) { 
     var json = data; 
     $.each(json, function(i, row) { 
      $("#commidwin").append(row['msg']); 
      last_msg_id = row['last_msg_id_db']; 
     }); 
     setTimeout(chatcom_load_one(id, name), 500); 
    }, 
    error:function(XMLhttprequest, textstatus, errorthrown) { 
     alert("error:" + textstatus + "(" + errorthrown + ")"); 
    } 
}); 
+0

고마워요,하지만 지금은 오류가 : "오류 : parseError (구문 오류 : 예기치 않은 토큰 <)"경고가 –

+0

내 질문을 업데이 트하고 또한 evaled.plz 리뷰 수있는 데이터를 추가했습니다 –

관련 문제