一直试图制作一些JSONP以解决跨域问题。在这里使用答案:Basic example of using .ajax() with JSONP?
$.getJSON("http://example.com/something.json?callback=?", function(result){
//response data are now in the result variable
alert(result);
});
但没有得到理想的结果。我的代码:
jquery的
var url = "http://wplivestats.com/stats/jsonp.php?callback=?";
$.getJSON(url, function(result){
//response data are now in the result variable
console.log(result);
});
PHP
<?php
include('init.php');
$pubid = $_REQUEST['pid'];
date_default_timezone_set ( 'America/New_York' );
$time = date('Y-m-d H:i:s',time()-$polling_minutes*60);
$count = $conn->prepare("select distinct ip from stats where timestamp >= '$time' AND Pubid = '$pubid'");
$count->execute();
$users['users'] = $count->rowCount();
echo "jsonCallback ( [";
echo json_encode($users);
echo "] )";
?>
错误:
ReferenceError: jsonCallback is not defined
jsonCallback ( [{"users":0}] )
我哪里错了?
答案 0 :(得分:2)
问题出在您的PHP脚本中。 当您使用jQuery执行请求时,URL中的问号将替换为动态函数名称。
在PHP方面,您需要使用此动态函数名称来包装数据,而不是使用“jsonCallback”。
您的PHP代码应如下所示:
echo $_GET['callback'] . "(" . json_encode($users) . ")";