我在我的项目中使用了codeigniter。当我试图从编码的数组中获取数组元素时,出现了问题。如何在我的javaScript中获取编码的json数组?
index.html
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
function sendMessage(){
var message=document.getElementById('chatInput').value;
var receverID=document.getElementById('id').value;
if(message==''){
alert("please enter message");
}
new Ajax.Request('index.php', {
method:'get',
evalJSON: true,
parameters: {
message: message,
id: receverID
},
onSuccess: function(transport){
var data= transport.responseText;
console.log(data);
},
onError: function() {
alert('Error');
},
onComplete: function() {
}
});
}
</script>
</head>
<body>
<textarea name="chatInput" id="chatInput" cols="60" rows="3"></textarea><br />
<input type="button" name="send_message" onclick="sendMessage()" Value="Send"/>
<input type="hidden" id="id" name="id" value="5">
</body>
</html>
index.php
<?php
header('Content-type: application/json');
$data['message'] = $_GET['message'];
$data['sender_id'] = $_SESSION['id'];
$data['user_id'] = $_GET['id'];
$this->model_users->setMessage($data);
echo json_encode($data);
?>
根据您的评论,您的响应中似乎有一个HTML。当您期望JSON响应时,最好将exit
放在json_encode
调用之后。
试着把它放在你的index.php
中,它应该会起作用:
echo json_encode($data);
exit; // terminate the current script