0

我正在使用 php 数组测试 getJSON,但它不起作用,任何人都可以帮我检查一下吗?我觉得问题出在 php 代码上,因为当我使用 getJSON url https://graph.facebook.com/zombies测试 html 代码时,它正在工作。

在我的 array.php

<?php

 header("Content-type: text/javascript");

 $arr = array(

            "name" => "Tim",
            "age" => "28"     );

echo json_encode($arr);

?>

在我的 test.html 中:

  <html>
  <head>
    <script type='text/javascript' src='jquery.js'></script>
  </head>
  <body>

    <script type='text/javascript'>

    $(document).ready(function() {
         $.getJSON('array.php', function(data) {        
            if(data) {
            document.write(data.age);       
            }
            else {
            alert('error');
            }
        });
    }); 
    </script>

   </body>
   </html>
4

3 回答 3

3

改变

header("Content-type: text/javascript");

header('Content-Type: application/json');

对于 JSONP

header('Content-Type: application/javascript');
于 2012-11-24T09:32:22.130 回答
1

header("Content-type: text/javascript");

你告诉浏览器你正在向它发送 JavaScript,而你发送的是 JSON。JSON 的内容类型是application/json.

如果你解决了这个问题,它应该可以工作,前提是你没有违反Same Origin Policy。如果您正在发出跨域请求,您的选择是:

  • 不要使用 ajax 和 JSON,使用JSON-P

  • 使用CORS,但它要求服务器允许您的文档的来源,并且浏览器支持它(大多数现代的支持,旧的不支持)。

  • 使用YQL 作为跨域代理

于 2012-11-24T09:32:31.397 回答
1

尝试将内容类型设置为

application/json

所以 jQuery 将作为 json 数据进行解释

于 2012-11-24T09:34:42.860 回答