HeyHo,
我在以下网站输入名称,并使用按钮提交此名称.
HTML代码:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>AJAX</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.js"></script>
</head>
<body>
<div><input type="button" id="ajaxButton" value="start"></div>
<div><input type="text" id="name"></div>
<div id="content"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果我点击按钮,jQuery会将AJAX请求发送到我的PHP脚本,这会创建我的响应.
jQuery代码:
$(document).ready(function() {
$('#ajaxButton').click(function() {
var name = encodeURIComponent($('#name').val());
$.ajax({
url : "js/script.php",
type : "POST",
data : "name="+name,
dataType : "json",
success : function (data) {
alert(data['hello']);
var json = $.parseJSON(data);
alert(json.hello);
$("#content").html(json.hello);
}
});
});
});
Run Code Online (Sandbox Code Playgroud)
我的PHP脚本创建响应并将其编码为JSON数组.
PHP代码:
<?php
if (isset($_POST['name'])) {
$ret = Array("hello" => "Hallo " . $_POST['name']);
echo json_encode($ret);
}
?>
Run Code Online (Sandbox Code Playgroud)
当我运行我的代码时,只会alert(data['hello']);弹出而alert(json.hello);不会弹出.我究竟做错了什么?
干杯ei.schinken
var json = $.parseJSON(data); 不是必要的.
dataType$.ajax已设置属性json,因此任何响应都将被解释为json.
使用 alert(data.hello);