【问题标题】:Can't Figure out Why JSON / JSONP Isn't Working无法弄清楚为什么 JSON / JSONP 不起作用
【发布时间】:2012-05-16 12:40:22
【问题描述】:

我有这个 PHP 代码:

JSON.php

<?php
    $array = array('items' => 38);
    $JSONItems = json_encode($array); 
    return $JSONItems;
?>

Items.html

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
    $.getJSON("http://domain.com/JSON.php?callback=?", 
        function(data){ alert(data.items) }
    );
</script>

显示 Items.html 时,不会触发任何警报,也不会发生任何事情。 (没有控制台错误或任何东西)

知道我做错了什么吗?

【问题讨论】:

  • erm,你不是说 PHP 脚本中的 echo 吗?

标签: php json jsonp


【解决方案1】:

您在 PHP 脚本中调用 return。这并不像你认为的那样。

你需要使用echo

【讨论】:

  • 我让它在没有 JSONP 的情况下工作,但是当我添加 ?callback=? (对于 JSONP,它不起作用。)
【解决方案2】:

我刚试过,效果很好

<script type="text/javascript">


    </script>
 <script>
 $(document).ready(function() {
   $.getJSON("http://localhost:8080/json.php", 
    function(data){ alert(data.items) }
);
 });
 </script> 

PHP

<?php
$array = array('items' => 38);
$JSONItems = json_encode($array); 
 print_r( $JSONItems )  ;
?>

【讨论】:

  • 当 php 脚本没有输出任何东西时,这将无济于事 ;)
  • 另一个使用 JSON.stringify() 函数的好习惯尝试 google 一下
  • 添加 ?callback= 时会怎样? (对于 JSONP)我可以让它以您上面列出的格式工作,但我不能让它为 JSONP 工作
猜你喜欢
  • 2021-05-29
  • 1970-01-01
  • 2014-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多