ajax调用网易云APi遇到跨域问题

jquery调用网易云音乐API遇到,网易音乐接口需要用node启动
前端js调用代码

var thisUrl="http://127.0.0.1:3000/album?id=32311";
            $.ajax({
                type:"get",
                url:thisUrl,
                async:true,
                dataType:"jsonp",
                success:function(musicData){
                    var data=JSON.parse(musicData)
                    console.log(data)
                },
                error:function(err){
                    console.log(err)
                }
});

控制台错误提示:Uncaught SyntaxError: Unexpected token :


怎么看代码都没毛病啊!!哪里出的错!!!?
聪明的我马上查百度,发现百度并没有什么类似的情况。自己解决半天,并没有什么进展。
原因:由于后台直接将json数据send过来,而json数据是不能跨域的,只能以jsonp的形式进行跨域,造成前端无法直接获取数据。
解决办法:这时候我们要将json数据放到一个对象中了,并以字符串的形式send给客户端

   const express = require("express")
const router = express()
const { createRequest } = require("../util/util")

router.get("/", (req, res) => {
  const id = req.query.id
  createRequest(`/api/album/${id}`, 'GET', null)
    .then(result => {
      res.setHeader("Content-Type", "application/json");
      console.dir(result);
      var obj = "callback({'data':"+result+"})";//这里是将数据放入callback中
      res.send(obj)
    })
    .catch(err => {
      res.status(502).send('fetch error')
    })
})


module.exports = router

结果:不贴图了。
最后放个网易云音乐API地址:https://binaryify.github.io/NeteaseCloudMusicApi/#/

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值