javascript - 部落冲突 API ajax
问题描述
在此脚本中,尝试访问 coc api 信息,我收到以下错误:
Refused to execute script from 'https://api.clashofclans.com/v1/leagues?authorization=Bearer%20eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiIsImtpZCI6IjI4YTMxOGY3LTAwMDAtYTFlYi03ZmExLTJjNzQzM2M2Y2NhNSJ9.eyJpc3MiOiJzdXBlcmNlbGwiLCJhdWQiOiJzdXBlcmNlbGw6Z2FtZWFwaSIsImp0aSI6ImM4MjFmNzAxLWI2ZGQtNGQzZC05ODE1LTJjZmE1OGQxOTU0OCIsImlhdCI6MTU0MjgzMzIzMiwic3ViIjoiZGV2ZWxvcGVyL2YzNzc5ZjZhLTMwYzMtZmZjMS1kZmNlLWU2ZTYzY2VmMjQ2NSIsInNjb3BlcyI6WyJjbGFzaCJdLCJsaW1pdHMiOlt7InRpZXIiOiJkZXZlbG9wZXIvc2lsdmVyIiwidHlwZSI6InRocm90dGxpbmcifSx7ImNpZHJzIjpbIjE3Ni44NC4xNDQuMjA5Il0sInR5cGUiOiJjbGllbnQifV19.ftgHBIHMbP4oYGn1_6VR0LgU5gUCOCBgnRsp-4jeeFiGq1rLYwNtaj3rFSkRytyc38Z_GfRchCKuYTAcn2D6vw&callback=jQuery33105516973593012948_1542924782029&_=1542924782030' because its MIME type ('application/json') is not executable, and strict MIME type checking is enabled.
script.js:15 err: error
但是在开发者工具-> 网络中,我可以看到响应中的数据(一个 json 对象)
怎么了?我需要通过代码访问数据
代码:
var key = "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiIsImtpZCI6IjI4YTMxOGY3LTAwMDAtYTFlYi03ZmExLTJjNzQzM2M2Y2NhNSJ9.eyJpc3MiOiJzdXBlcmNlbGwiLCJhdWQiOiJzdXBlcmNlbGw6Z2FtZWFwaSIsImp0aSI6ImM4MjFmNzAxLWI2ZGQtNGQzZC05ODE1LTJjZmE1OGQxOTU0OCIsImlhdCI6MTU0MjgzMzIzMiwic3ViIjoiZGV2ZWxvcGVyL2YzNzc5ZjZhLTMwYzMtZmZjMS1kZmNlLWU2ZTYzY2VmMjQ2NSIsInNjb3BlcyI6WyJjbGFzaCJdLCJsaW1pdHMiOlt7InRpZXIiOiJkZXZlbG9wZXIvc2lsdmVyIiwidHlwZSI6InRocm90dGxpbmcifSx7ImNpZHJzIjpbIjE3Ni44NC4xNDQuMjA5Il0sInR5cGUiOiJjbGllbnQifV19.ftgHBIHMbP4oYGn1_6VR0LgU5gUCOCBgnRsp-4jeeFiGq1rLYwNtaj3rFSkRytyc38Z_GfRchCKuYTAcn2D6vw";
var url = "https://api.clashofclans.com/v1/leagues?authorization=" + key;
var data;
function loadLeagues() {
$.ajax({
url: url,
dataType: "jsonp",
success: function (res) {
data = res;
console.log("success: " + res)
},
error: function(err, msg) {
console.log("err: " + msg)
}
});
}
解决方案
密钥不是 URL 的一部分,而是标头的一部分。我不熟悉 AJAX,但可能类似于:
function loadLeagues() {
$.ajax({
url: 'https://api.clashofclans.com/v1/leagues',
headers: {
'Authorization': 'Bearer <your key>'
},
dataType: 'json',
contentType: 'application/json',
processdata: false,
success: function(data) {
alert(JSON.stringify(data));
},
...
注意:还要仔细检查您的浏览器 IP 与您向 Supercell 声明的 IP。
推荐阅读
- c++ - C++:如何在结构中定义类实例。类具有参数化构造函数
- ios - 使用 Xamarin.Forms 在 iOS 上更新 listview 文本绑定会导致闪烁
- python-poetry - python[poetry] 安装卡住了
- ios - UIApp 为 nil,这意味着我们无法将控制动作分派给它们的目标
- python - TypeError:无法处理值'
' 作为常量,因为它具有未知类型的 'function' - azure - 我们如何将问题数据从 HTML 文件导入 QnA Maker?
- flutter - PageView 指示点在 Persistent Bottomsheet Flutter 中不起作用
- c# - FtpWebRequest ConnectionGroupName 练习题
- classloader - powermockit 如何模拟私有方法
- modbus - 为什么在写入多个寄存器时需要寄存器数量和字节数?