研究了好几天的跨域调用,发现QQ音乐可以支持jsonp,简短代码如下:
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--<script src="https://github.com/jaubourg/jquery-jsonp/blob/master/src/jquery.jsonp.js"> </script>-->
<script type="text/javascript">
// jQuery(document).ready(function(){
// $.getJSON("http://box.zhangmen.baidu.com/x?op=12&count=1&title=最炫民族风$$凤凰传奇$$$", function(json)
// {
// alert(json);
// });
// });
$.ajax({
type: "post",
async: false,
// url: "http://shopcgi.qqmusic.qq.com/fcgi-bin/shopsearch.fcg?value=记得&artist=林俊杰&type=qry_song&out=json&page_no=1&page_record_num=3",
url:"http://shopcgi.qqmusic.qq.com/fcgi-bin/shopsearch.fcg?type=qry_song&value=天意&page_no=1&page_record_num=3",
dataType: "jsonp",
jsonp: "searchCallBack",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)
jsonpCallback:"flightHandler",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据
success: function(json){
// alert('您查询到航班信息:票价: ' + json.price + ' 元,余票: ' + json.tickets + ' 张。');
alert(json);
},
error: function(){
// alert('fail');
}
});
function searchCallBack(json) {
alert(json.result);
alert(json.totalnum);
alert(json.search);
}
</script>
具体信息可参见 参数解析