jsonp简单的调用不起作用

时间:2011-10-06 15:37:29

标签: php json jsonp

我有这个简单的2个文件应该处理简单的jsonp调用

这是索引文件:

<html>
<head>
    <script type="text/javascript" id="myJSONPCall" src="http://mySubDomain.comoj.com/jsoncall.php?jsonCallback=myCallback"></script>
    <script type="text/javascript">
        function myCallback(obj) {
            alert(obj.text);
        }
    </script>
</head>

<body>
</body>
</html>

这是php部分:

<?php   
$myObject = array(
    "text" => "Hello, I am data from the remote server.",
    "created_at" => "Thu May 07 21:36:12 +0000 2009"
);

$myJSONObject  = json_encode($myObject);

$myJSONCallback = filter_var($_REQUEST['jsonCallback'], FILTER_SANITIZE_STRING);

print "$myJSONCallback($myJSONObject)"
?>

在这里,我更新它。这有什么不对?我到底做错了什么?

2 个答案:

答案 0 :(得分:-1)

我不确定你是否理解JSONP。你在这里的代码没有意义:

  • 您提供的回调是“3”,而不是全局JavaScript函数的名称。
  • PHP方面没有生成对JSON回调的调用。

答案 1 :(得分:-1)

那么,您认为要在哪里打印您的GET号码? 当您的浏览器请求http://mysubdomain.comoj.com/jsoncall.php?jsonCallback=3网址时,它会向php页面发出HTTP请求。当http服务器向你发送一个响应它只包含“3”作为正文,这是无效的javascript,没有任何反应。

此外,如果你想创建一个构建一个dinamic javascript的php页面,你必须首先通过使用header("Content-Type: textt/javascript");指令告诉浏览器你发送一个javascript文件,然后再将任何内容打印到屏幕上。

最后但并非最不重要的......你根本没有进行jSONP调用:)