在服务器上创建AJAX / JSON回调函数

时间:2014-04-26 10:36:49

标签: javascript php jquery ajax json

我正在创建一个类似服务的广告,并使用AJAX从另一个Web服务器获取一些图片链接。问题是,任何人都可以展示一些如何在对其进行AJAX调用时为第二个Web服务器创建响应的示例吗?我一直在网上寻找答案,但是没有找到任何可以帮助我解决这个问题的方法。谢谢。

1 个答案:

答案 0 :(得分:1)

JSONP响应基本上只是一段JavaScript,它是一个函数调用,参数是数据的JavaScript对象或数组。您应该查找callback查询字符串变量以用作函数名称。

一个PHP示例:

// the data to return
$data = array('image' => 'http://placehold.it/100x100');

// default callback name if none set
$function = 'callback';

// if callback set, override the default
if(isset($_GET['callback'])){
    // filter the callback so it can only contain a-zA-Z0-9
    $function = preg_replace("/[^a-zA-Z0-9]+/", "", $_GET['callback']);
}

// output
echo $function . '('  . json_encode($data) . ');';

通过http://yoursite/data.php?callback=abc

调用时的示例
abc({ "image" : "http://placehold.it/100x100" });

通过jQuery消费此服务将是:

$.ajax({
   url : 'http://yoursite/data.php?callback=?',
   dataType : 'jsonp',
   success :  function(response){
       console.log(response.image);
   }
});