【发布时间】:2014-07-03 05:03:38
【问题描述】:
我一直在研究是否可以创建我的Chrome Plugin 的基于网络的版本 现在它完全依赖于 Trakt.TV 的 JSON API。
根据 Angular 的文档,可以在多个级别拦截 HTTP 请求,一个是 HTTP Backend 本身(虽然主要用于测试),另一个是 HTTPInterceptor.get
基本想法是通过http://json2jsonp.com/ 包装对 Trakt.TV 的 JSONP api 的调用,并让它们透明地返回以绕过跨站点脚本限制。这不仅对我自己的项目非常有用,而且对许多其他处理相同问题的人也很有用(因此我会在完成后发布模块,但我想正确地完成它)
基础应该很简单:
- 在正确的级别挂钩 $http.get 请求
- 覆盖原来的请求
- 取消已设置的可选其他请求
- 通过 $http.jsonp(http://json2jsonp.com/) 钩住它
- 完成后返回原始承诺的成功/失败
问题:
- 有人建造过这样的东西吗? (Github 搜索一无所获)
- 您建议使用 HTTPBackend 还是 HTTPInterceptor?
【问题讨论】:
标签: json angularjs cross-domain jsonp cors