2011-10-06 68 views
-1

我有这个简单的2个文件应该处理简单的JSONP调用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)" 
?> 

在这里,我更新它。这里有什么问题?我究竟做错了什么?

+0

Downvoting你不喜欢的所有答案是不合适的。 – duskwuff

回答

-1

我不确定你了解JSONP。您在此处的代码没有意义:

  • 您提供的回调是“3”,而不是全局JavaScript函数的名称。
  • PHP端不会生成对JSON回调的调用。
+0

你能告诉我一个如何做回电话的例子吗? –

-1

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

此外,如果您要创建一个构建动态JavaScript的PHP页面,则必须先通过使用header("Content-Type: textt/javascript");指令向浏览器发送JavaScript文件,然后再将任何内容打印到屏幕上。

最后但并非最不重要......你根本没有在做一个jSONP调用:)