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