Instagram API CORB

时间:2018-11-22 12:58:06

标签: angular instagram instagram-api

我的角度应用程序使用https://api.instagram.com/oembed嵌入instagram帖子,但尽管该应用程序使用Jsonp,但它收到了跨域读取阻止(CORB)阻止的跨源响应。

Chrome控制台显示网址为https://api.instagram.com/oembed/?omitscript=true&omit_script=true&callback=ng_jsonp.__req0.finished&maxwidth=800&hidecaption=true&url=https://www.instagram.com/p/BeyU33KF-wQ/

1 个答案:

答案 0 :(得分:1)

JSONp在Angular中已弃用。并且有一个非常合理的原因。 JSONp是一种请求方法,以前曾用于将回调插入请求的响应主体中。您可以将其视为一种解决方案,它早于广为接受的承诺和可观察角度的角度。

https://angular.io/api/http/Jsonp

在您的示例中,如果工作的JSONp将在收到响应时执行 ng_jsonp .__ req0.finished()。从角度来看,问题是如果我要控制您所请求的api,该怎么办。好吧,我可以使用自己的包含恶意代码的回调将您的请求301请求到其他URL。

这是CORB试图代表用户解决的漏洞类型。

这也是为什么相同的请求对标准GET可以正常工作的原因,因为支持有效的JSON只是忽略了回调。

如果您有特定的回调要在响应出现后执行,我建议您看一下RXJS。

(此答案假设您是指Angular(当前),而不是AngularJs,如果您是指有角度的js,则应研究promises)