我有这个简单的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)"
?>
在这里,我更新它。这有什么不对?我到底做错了什么?
答案 0 :(得分:-1)
我不确定你是否理解JSONP。你在这里的代码没有意义:
答案 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调用:)