jasonp跨域请求“将json包装成回调方法”
我添加了?callback =? 使用匿名函数获取请求中的url,我必须添加到我的服务器端代码以使其跨域工作。
在这里使用getJSON是正确的吗?
这里是没有JSONP的播放器的一个例子http://www.freeenergymedia.com/shared/PLAYER/player/player.php
返回JSON数据的PHP脚本
channel->item; $i = 0; $data = array(); foreach ($items as $item) { $data[] = array( 'title' => (string) $item->title, 'mp3' => (string) $item->enclosure['url'], ); if (++$i == 3) break; } $jsdata = json_encode($data); $test = htmlspecialchars($jsdata, ENT_NOQUOTES, 'utf-8'); $jsdata = ($_GET['callback'].'('.json_encode($data).');'); echo $jsdata ?>
获取请求,将JSON加载到播放器中
$(document).ready(function() { $.getJSON("http://www.freeenergymedia.com/getxml2.php?callback=?", function callback(json) { new jPlayerPlaylist({ jPlayer: "#jquery_jplayer_1", cssSelectorAncestor: "#jp_container_1" }, json, { swfPath: "js", supplied: "mp3, oga", wmode: "window" }); }) });
标记
Demo : jPlayer as an audio playlist player
Update Required To play the media you will need to either update your browser to a recent version or update your Flash plugin.