- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有人询问 API,我特别想创建一个使用 NBA API (stats.nba.com) 的示例。无可否认,我不是专家,但我想我会使用 fetch 编写一个示例。
我找到了一些关于 API 端点 (link) 的文档,并且可以组成一个 URI,当直接从地址栏访问时解析为 JSON 数据。
我遇到的问题是,当我使用 fetch 尝试此操作时,API 似乎不允许 CORS,所以我做了一些阅读,据我所知,我应该能够使用 'no-cors 发出不透明的请求'.但是,当我使用“no-cors”参数时,我得到一个 CORB(跨源阻塞)错误,我找不到太多关于该错误的文档,但如果名称是一个指示,那么我认为无法发出跨源请求。
让这个假设变得困惑的部分是,虽然我似乎找不到任何使用 NBA API 客户端的示例,但我可以看到许多库似乎使用了我用 Python 测试过的相同端点和其他服务器端方法。事实上,上面的文档来自一个 git,它就是这样做的。
作为替代方案,我确实尝试了另一个使用 NHL API (statsapi.web.nhl.com) 的示例,它似乎工作正常,我可以生成团队花名册列表。
这是演示该问题的一段简化代码。 “dataURL1”与“cors”一起工作正常,但 dataURL2 在“cors”和“no-cors”上都出错。
function test01() {
var dataURL1 = "http://statsapi.web.nhl.com/api/v1/teams/8";
var dataURL2 = "https://stats.nba.com/stats/commonteamroster/?Season=2017-18&TeamID=1610612737";
/*
- if dataURL1 is used there is no issue with 'cors' parameter
- if dataURL2 is used with 'cors' parameter,
a no 'Access-Control-Allow-Origin' message is given
- if dataURL2 is used with 'no-cors' parameter,
a CORB message is given
*/
fetch(dataURL2, { mode: 'no-cors' })
.then((resp) => resp.json())
.then(function (data) {
console.log("data retrieved");
})
.catch(function (error) {
console.log(error);
});
}
大多数情况下,我需要确认我没有遗漏任何东西,并且我无法通过客户端发出请求。如果是这种情况,我将不胜感激文章或内容的一些指导,这些文章或内容解释了为什么可以在服务器端而不是客户端发出请求。
最佳答案
NHL URL 有效是因为其服务器响应 Access-Control-Allow-Origin: *
(加上其他 CORS header )而 NBA 服务器则没有。由于您不控制有问题的服务器,因此您无法更改此行为。您可以让您控制的服务器执行提取,并让您的服务器在浏览器发送请求时以 CORS 友好的方式响应内容。
同源策略是一种机制,浏览器通过该机制防止脚本从请求脚本读取存在于不同源上的资源。如果您使用非浏览器的软件执行 HTTP 请求,则 CORS 将不适用,因为 CORS 是 Web 浏览器固有的安全措施。
no-cors
是一种表达方式,“是的,我知道这是一个跨源资源。无论如何都要获取它,但当然不要让我阅读响应。”这是一个“不透明响应”,可以在可以将内容直接呈现给用户(例如,将跨源图像放置在 <img>
标签中)同时保持尝试学习的脚本无法访问内容时使用关于它的内容。
但是,JSON 数据不是这种不透明响应功能有意义的数据。 CORB 是当浏览器决定“此响应无法对请求页面有用时;我担心这样做纯粹是为了利用安全漏洞。因此,我什至不会,例如,解析此 JSON。 "
关于javascript - 用于 stats.nba.com 的 CORS/CORB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51272162/
我已经使用 Jquery AJAX 调用了第三方 API。我在控制台中收到以下错误: Cross-Origin Read Blocking (CORB) blocked cross-origin re
我有一个 react webapp,它调用一个 api(使用 fetch 调用另一个 api)获取图像 url,并通过 img 标签在屏幕上呈现图像。 我遇到的问题是图像无法加载,而是在控制台中收到
我不确定为什么在尝试使用跟踪像素时会出现 CORB 错误。 我认为如果返回图像并且内容类型是图像(gif 或 jpeg),则不会发生这些错误。确切的错误是: 跨源读取阻塞 (CORB) 阻止了跨源响应
我没有收到使用 Angular 4 服务的 api 调用的响应,但在浏览器中工作的相同调用我面临以下给定错误 - 跨源读取阻止 (CORB) 阻止跨源响应 最佳答案 我在获得回复方面也遇到了类似的挑战
我有一个 corb 脚本来对 xml 文件运行节点替换。 如果我不指定集合,它会从现有集合中删除文档吗? 最佳答案 如果您使用 xdmp:node-replace() 更改文档,那么该文档将保留在它的
我知道很多人也有这个问题。但是,似乎人们正在混合使用CORB和CORS。我之前已经安装了CORS扩展程序,但似乎无法在CORB中使用。 我在前端使用聚合物 return { "Content-type
Chrome 一直工作到版本 73。现在它向我抛出 CORB 警告并阻止我的 chrome 扩展程序运行。 这是我的 ajax jquery 代码,没什么特别的 $.ajax({ url:
这个问题已经有答案了: XMLHttpRequest cannot load XXX No 'Access-Control-Allow-Origin' header (11 个回答) 已关闭 3 年前
我正在使用下载 URL 从我的 Firebase 存储中获取 HTML 文件并将其显示在模板中。在我的模板中,我使用 与 src设置为下载地址。浏览器显示损坏的文件,控制台显示 Cross-Origi
我正在优化我的 PDF 查看器应用程序,我想为 PDF 使用链接预加载。 PDF 下载是通过 XHR 请求触发的(它只是后台的 PDF.js 库)。 我的想法是预加载 PDF,然后当加载处理 PDF
合并发生在 corb 过程中,用于添加超过 1000 万个文档的节点。 CPU/IO 达到最大导致超时。如果我停电合并,corb 过程将由于许多站而停止。我能做什么或解决问题。 我有 6 片森林。 合
当我尝试从我的 JavaScript (React) 应用程序中访问 Pixabay API 时,遇到了跨源读取阻止 (CORB)。 这是我的获取代码: fetch(`https://pixabay.
我正在尝试 JSONP。我有一个如下所示的 HTML: JSONP 我的 main.js 文件是: function showPlayers(dat
我有一个服务器端呈现的 Angular 应用程序,我在其中使用 ng2-adsense在某些路线上展示 AdSense 广告。我注意到大部分时间(并非所有时间)我的广告都没有显示,并且我在 Chrom
我尝试使用 open-graph-scraper 和 Vue.js 抓取 OG 数据,但由于 Chrome 中的 CORB 而被阻止。对于我使用 Node 运行的脚本来说,它运行良好,但是是否有解决此
我正在 React 上运行一个简单的应用程序来显示我在 https://my.pcloud.com/ 上上传的文件中的音轨使用 React-Player 组件。 但是,轨道不显示,我在控制台上收到以下
我想调试 Chrome 74 中可能由 CORB 引起的本地开发环境问题。我想看看 - 当我关闭 CORB 时 - 问题是否消失。 根据 Google developer docs比如说 You ca
我是 CORB 的新手,正在尝试使用指南: https://github.com/marklogic-community/corb2/wiki/Hello-World-from-CORB 我的 COR
所以我有一个文件 uris.xqy,它获取我想在 corb 中操作的文档 URI。 然后我有引入 $URI 的 docs.xqy 将变量 $URI 声明为 xs:string external; 然后
我想通过我的 chrome 扩展程序中的 post 调用 api,问题是无法获取响应数据。 我刚刚在控制台中收到跨源读取阻止 (CORB),但响应为空。 Cross-Origin Read Block
我是一名优秀的程序员,十分优秀!