Php jquery`.ajax`不工作

Php jquery`.ajax`不工作,php,jquery,ajax,json,Php,Jquery,Ajax,Json,我是一名n00b,试图通过在线教程学习jquery.ajax 我在本地主机上有以下“客户端”代码: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> <script src="http://ajax.googleapis

我是一名n00b,试图通过在线教程学习jquery
.ajax

我在本地主机上有以下“客户端”代码:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title></title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script> 
    <script> 
        // wait for the DOM to be loaded 
        $(document).ready(function() { 
            $("#submit_btn").click(function(){
                $.ajax({
                      type: "POST",
                      url: "response.php",
                      dataType: 'json',
                      data: { name: "John", location: "Boston" }
                }).done(function( msg ) 
                {
                  alert( "Data Saved: " + msg );
                });
            });
        }); 
    </script> 
</head>
<body>
    <input type="submit" name="submit" class="button" id="submit_btn" value="Send" /> 
</body>
</html>

//等待加载DOM
$(文档).ready(函数(){
$(“#提交”_btn”)。单击(函数(){
$.ajax({
类型:“POST”,
url:“response.php”,
数据类型:“json”,
数据:{姓名:“约翰”,地点:“波士顿”}
}).done(函数(msg)
{
警报(“保存的数据:“+msg”);
});
});
}); 
我的“服务器”端文件“response.php”中有以下代码:

<?php
if (isset($_POST))
{
$answer = $_POST;
echo json_encode($answer);
}  else {
echo json_encode("no good");
}
?>

当我单击“发送”按钮时,会收到一条提示,提示“数据已保存:[对象]”。我正在尝试获取警报,以显示使用单击事件通过“post”提交的数据。我希望警报显示'name:'John',Location:'Boston'。

保存的数据:“+msg.name+”+msg.Location

您收到的是
JSON
对象,因此在
javascript
中打印对象将打印
[object object]
。您应该使用
(点)操作符访问对象的属性以获取名称和位置

假设您的响应是以下JSON对象:

msg={name:“John”,last_name:“Doe”}

要访问
name
对象的
msg
属性,请使用点运算符:

console.log(msg.name)

为了使您的代码具有通用性,您应该能够以某种方式告诉客户机请求是好是坏。因此,您可以像这样发送
状态

<?php
if (isset($_POST))
{
$answer = $_POST;
$answer['status'] = true;
echo json_encode($answer);
}  else {
echo json_encode(array('status' => false, 'msg' => 'no good'));
}
?>
更新

还有一件事:一旦决定使用
JSON
,就不要将
text/plain
发回。这正是你在这里所做的:

echo json_encode(“不好”)

此代码a生成字符串
“no good”
,它是
文本/普通的
,但不是有效的
JSON
对象


检查您的控制台是否有任何错误,它可能会抛出解析错误我不是php高手,但我对
json\u encode(“不好”)
给出json o/pis请求作为response@Nemoden,非常感谢。然而,我对客户端的“功能(响应)”感到困惑。“response”是否与服务器端文件的名称有关:“response.php”?不,它只是回调函数的一个参数。可能是任何东西。@Nemoden,好的。我想我终于开始明白了。所以,您使用的“response”类似于我在原始代码中使用的“msg”,是吗?这只是一种将响应从服务器传递到函数的方法,是吗?再次感谢你的帮助。
function(response) {
  if (response.status) {
    console.log('yep, post was submitted, name is ' + response.name + ', location is ' + response.location);
  }
  else {
    console.log('something went wrong: ' + response.msg);
  }
}