<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<title>Sample Page</title>
<script>
var summonername = "TraversTT"
var api_key1= "******"
var headers1 = {
'Access-Control-Allow-Origin': '*',
'Origin': "https://developer.riotgames.com",
'Accept-Charset': "application/x-www-form-urlencoded; charset=UTF-8",
'X-Riot-Token': "*****",
'Accept-Language': "en-US,en;q=0.9",
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',
}
var settings = {
"async": true,
"type": "POST",
"url": "https://na1.api.riotgames.com/lol/summoner/v4/summoners/by-name/"+summonername+"?api_key="+api_key1,
"headers": headers1,
"dataType": 'json',
"data": 'dataTest',
};
$.ajax(settings).done(function (response) {
console.log(response);
});
我在连接到此API时经常遇到错误,并得到以下响应:
jquery.min.js:4拒绝设置不安全的标头“来源” 发送@ jquery.min.js:4 阿贾克斯@ jquery.min.js:4 (匿名)@ Riot dDragon访问sample2.html:26 jquery.min.js:4拒绝设置不安全的标头“ Accept-Charset” 发送@ jquery.min.js:4 阿贾克斯@ jquery.min.js:4 (匿名)@ Riot dDragon访问sample2.html:26 jquery.min.js:4拒绝设置不安全的标头“ User-Agent” 发送@ jquery.min.js:4 阿贾克斯@ jquery.min.js:4 (匿名)@ Riot dDragon访问sample2.html:26 2jquery.min.js:4个选项https://na1.api.riotgames.com/lol/summoner/v4/summoners/by- 名称/ TraversTT?api_key = RGAPI-1ed86c58-2eee-4e6c-85d4-3bead97e4d3b 405(方法不是 允许) 发送@ jquery.min.js:4 阿贾克斯@ jquery.min.js:4 (匿名)@ Riot dDragon访问sample2.html:26 Riot dDragon访问sample2.html:1在以下位置访问XMLHttpRequest 'https://na1.api.riotgames.com/lol/summoner/v4/summoners/by-name/TraversTT? api_key =来自原点'null'的RGAPI-1ed86c58-2eee-4e6c-85d4-3bead97e4d3b'已被阻止 通过CORS策略:对预检请求的响应未通过访问控制检查:否 在请求的资源上显示“ Access-Control-Allow-Origin”标头。
今天,我一直在用不同的方式来做这个工作,大约6个小时,因此任何可用的帮助都将是惊人的。
答案 0 :(得分:0)
根据api文档,您的代码应如下所示:
<script>
var summonername = "TraversTT";
var api_key1= "RGAPI-1ed86c58-2eee-4e6c-85d4-3bead97e4d3b";
var headers1 = {
'X-Riot-Token': "RGAPI-1ed86c58-2eee-4e6c-85d4-3bead97e4d3b",
}
var settings = {
"async": true,
"type": "GET",
"url": "https://na1.api.riotgames.com/lol/summoner/v4/summoners/by-name/"+summonername+"?api_key="+api_key1,
"headers": headers1,
};
$.ajax(settings).done(function (response) {
console.log(response);
});
</script>
HTTP请求有多种类型; GET,POST,PUT等...您正在使用POST
,但是该端点仅支持GET
,并且您正在设置一些标头,通常是响应标头。
很遗憾,此端点上存在CORS问题,因此您的浏览器将无法通过浏览器访问它。
您可以在终端中尝试使用此cUrl
来查看响应(将其复制并粘贴到您的终端中):
curl 'https://na1.api.riotgames.com/lol/summoner/v4/summoners/by-name/TraversTT?api_key=RGAPI-1ed86c58-2eee-4e6c-85d4-3bead97e4d3b' -X OPTIONS -H 'Access-Control-Request-Method: GET' -H 'Origin: https://js-9vpefs.stackblitz.io' -H 'Referer: https://js-9vpefs.stackblitz.io/' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36' -H 'DNT: 1' -H 'Access-Control-Request-Headers: x-riot-token' --compressed
注意
我建议不要在公开论坛上发布您的API密钥('X-Riot-Token': "RGAPI-1ed86c58-2eee-4e6c-85d4-3bead97e4d3b"
)。