$.ajax({
type:"get",
url:"http://www.kugou.com/yy/index.php?r=play/getdata&hash=0B464599DB574F6BD1D9730135970DF8&album_id=516425&_=1500008067482",
async:true,
success:function (data){
console.log(data);
}
});
$.ajax({
type:"get",
url:"http://www.kugou.com/yy/index.php?r=play/getdata&hash=0B464599DB574F6BD1D9730135970DF8&album_id=516425&_=1500008067482",
async:true,
beforeSend:function (xhr){
xhr.setRequestHeader("Access-Control-Allow-Origin","*");
xhr.setRequestHeader("Host","songsearch.kugou.com");
xhr.setRequestHeader("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0");
xhr.setRequestHeader("Accept","*/*");
xhr.setRequestHeader("Accept-Language","zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3");
xhr.setRequestHeader("Accept-Encoding","gzip, deflate");
xhr.setRequestHeader("Referer","http://www.kugou.com/yy/html/search.html");
xhr.setRequestHeader("Cookie","UM_distinctid=15d1131d8985-0e8266a117719a8-12646f4a-1fa400-15d1131d8991cd; kg_mid=fd73d6fda1b05522b9a34754c90a3185; Hm_lvt_aedee6983d4cfc62f509129360d6bb3d=1499959312,1499959321,1500005541,1500005583; Hm_lpvt_aedee6983d4cfc62f509129360d6bb3d=1500005583");
xhr.setRequestHeader("Connection","keep-alive");
},
success:function (data){
console.log(data);
}
});
加上了跟原网站请求一样的响应头
不知道怎么搞了
我的
别人的
一样的url
结果也是一样的
播放器能用 英文不是一样的url
<audio controls="controls" src="http://fs.web.kugou.com/6c68efc883b5c9f2ac5620df5c3c12d2/5968472c/G010/M00/00/1F/qoYBAFUOaRCACPGtADl0eFwU_IQ755.mp3" id="audio"></audio>
前些日子我也遇到了和楼主一样到问题, 最后得出到结论是必须后端支持否则前端无法做到。
大概的思路有几个:
酷狗服务器修改为支持跨域,即设置 Access-Control-Allow-Origin:* 。
酷狗服务支持jsonp类型ajax调用,需要处理callback参数
在自己的服务器后台请求数据然后用普通的ajax发给前端。
1和2基本不可能,一般人家都不会搭理你的,我是用方法3解决问题的。
参考:链接描述