XMLHttprequest 无法使用 twitch.tv api

Posted

技术标签:

【中文标题】XMLHttprequest 无法使用 twitch.tv api【英文标题】:XMLHttprequest not working the twitch.tv api 【发布时间】:2015-08-26 16:01:32 【问题描述】:

所以我一直在尝试访问 twitch.tv api,但每次我提出请求时,我都会不断收到错误消息:

 "XMLHttpRequest cannot load https://api.twitch.tv/kraken/streams/normalice. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8080' is therefore not allowed access."

我目前在开发过程中使用 live-server 包,否则我只使用 html、css、javascript。这是我的javascript:

var req = new XMLHttpRequest();
var url = 'https://api.twitch.tv/kraken/streams/normalice';

req.open("GET", url, true);
req.send();

req.onreadystatechange = function () 
   if (req.status == 200 && req.readState == 4)
      // do stuff here
      console.log('hurray it worked');
   else
      console.log(req.statusText);
      console.log(req.responseText);
   

有没有人知道我为什么会遇到这个错误?

【问题讨论】:

【参考方案1】:

Twitch.tv API 不支持 CORS。您需要使用 JSON-P(又名 JSONP)来解决它。在the Twitch.tv API docs 中阅读更多相关信息。有一个prior answer on how to make a JSONP request with native JavaScript 可能有用。

【讨论】:

感谢链接帮助很大!我不敢相信我错过了文档中的那个细节 ***.com/questions/47979394/… 的评论表明 Twitch API 已经移除了 JSONP 支持。

以上是关于XMLHttprequest 无法使用 twitch.tv api的主要内容,如果未能解决你的问题,请参考以下文章

无法通过 xmlhttprequest 加载本地 xml 文件

XMLHttprequest 无法使用 twitch.tv api

无法使用 XMLHttpRequest 绘制音频文件的波形

无法使用 WKWebView 通过 XMLHttpRequest 加载音频文件

为啥在使用 setRequestHeader 制作 xmlhttprequest 时无法设置 cookie 和 set-cookie 标头?

离子 - XMLHttpRequest 无法加载