怎樣通過(guò)$.ajax跨域請(qǐng)求斗魚(yú)TV API 取得json數(shù)據(jù) 財(cái)富值8

科技 未結(jié) 11 1336
小雨粑粑2012
小雨粑粑2012 2022-07-25 17:09

通過(guò)$.ajax跨域請(qǐng)求 chrome提示 Uncaught SyntaxError: Unexpected token

這是我失敗的代碼

$.ajax({ type: "get", url: "http://open.douyucdn.cn/api/RoomApi/live/lol", dataType: "jsonp", jsonp: "callback", jsonpCallback: "data", success: function(response) { console.log(response); } });

斗魚(yú)TV API文檔

我去google后,了解到返回的數(shù)據(jù)是json格式,但我如果將dataType的value改成json后,又會(huì)出現(xiàn)跨域問(wèn)題。
這期間我嘗試使用script直接調(diào)用該鏈接,但還是同樣的問(wèn)題,
貼出失敗的代碼:

var url = "http://open.douyucdn.cn/api/RoomApi/live/lol"; var script = document.createElement("script"); script.setAttribute("src", url); document.getElementsByTagName("head")[0].appendChild(script);


我覺(jué)得我的問(wèn)題應(yīng)該歸納為:如何使用javascript在跨域條件下調(diào)用json格式數(shù)據(jù)?
希望大家能指導(dǎo)我一下,謝謝!


這個(gè)問(wèn)題來(lái)源于freecodecamp上的一個(gè)小題目,
題目地址
我只是將其中的twitch API改為斗魚(yú)API

11條回答
  •  比禾頁(yè)在希臘
    2022-07-25 17:39

    一、后臺(tái)發(fā)過(guò)來(lái)的api,基本都有權(quán)限驗(yàn)證的,就是header里面帶auth權(quán)限驗(yàn)證,需要攜帶token二、涉及到跨域,可能后端一定做了域名限制(必須),就是Access-Control-Allow-Origin:"..."這貨,對(duì)域名限制后,基本別的ip訪(fǎng)問(wèn)不了api;三、可能需要模擬登陸后爬取數(shù)據(jù),需要cookie驗(yàn)證,沒(méi)有cookie就沒(méi)有一切;你想的簡(jiǎn)單了,這就是個(gè)小爬蟲(chóng)了,單單的ajax沒(méi)拉莫強(qiáng)大。

提交回復(fù)