Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用AJAX检索的Json代码是不可解析的_Php_Json_Jquery - Fatal编程技术网

Php 使用AJAX检索的Json代码是不可解析的

Php 使用AJAX检索的Json代码是不可解析的,php,json,jquery,Php,Json,Jquery,我是初学者 我写了简单的json jquery php代码来帮助理解json的概念,但它不起作用,请帮助我。(我没有写$\u Post、submit、click function等。因为它不起作用,所以我剪切代码来发现问题) 用户进入view.html,应该会得到一个值为Bob的警报框-问题是用户没有得到警报框 view.html <html> <head> <script type="text/javascript" src="http://aj

我是初学者

我写了简单的json jquery php代码来帮助理解json的概念,但它不起作用,请帮助我。(我没有写$\u Post、submit、click function等。因为它不起作用,所以我剪切代码来发现问题)

用户进入view.html,应该会得到一个值为Bob的警报框-问题是用户没有得到警报框

view.html

<html>
<head>
<script type="text/javascript" 
        src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">
</script>
<script type="text/javascript">
  $(document).ready(function () {
      $.ajax({
          url: 'controller.php',
          type: 'post',
          dataType: 'json',
          success: function (data) {
              alert(data["userdata"]["first"]);
          }
      });
  });​
</script>
</head>
<body>
</body>
</html>

$(文档).ready(函数(){
$.ajax({
url:'controller.php',
键入:“post”,
数据类型:“json”,
成功:功能(数据){
警报(数据[“用户数据”][“第一”]);
}
});
});​
controller.php:

<?php
  $arr=array();
  $arr['userdata']['first']='Dan';
  echo json_encode($arr);
?>


感谢帮助

感谢Jan,我发现了问题:我的本地zend服务器没有工作(因为我没有为zend community server定义密码),当我修复它时,它开始工作

您需要检查apache的mod_安全设置。这可能会导致503服务暂时不可用

请尝试将正确的JSON头添加到PHP文件中

header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');

我没有看到代码中有任何错误。尝试使用chromewebdeveloper->Resources(或Firebug->Net)进行调试,看看是否获得了controller.php的正确内容。它是否返回状态200?我得到:503服务暂时不可用也许您可以添加更多的细节,例如问题是什么/如何解决的--以防其他人在AJAX请求期间遇到503错误。