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