NotaGuruAtAll
NotaGuruAtAll

Reputation: 533

JSONP - How The Heck Do I Use It?

Been trying to cook up some JSONP to get around Cross Domain issues. Used answer here: 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);
});

But not getting the desired result. My code:

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 "] )";
?>

The Error:

ReferenceError: jsonCallback is not defined
jsonCallback ( [{"users":0}] )

Where am I going wrong?

Upvotes: 1

Views: 69

Answers (1)

Wim Mostmans
Wim Mostmans

Reputation: 3601

The problem is in your PHP script. When you do a request using jQuery the question mark in the url will be replaced with a dynamic function name.

On the PHP side you need to use this dynamic function name to wrap your data instead of using "jsonCallback".

Your PHP code should look like this:

echo $_GET['callback'] . "(" . json_encode($users) . ")";

Upvotes: 2

Related Questions