我正在使用后端的JavaScript框架(wakanda),它使用XHR请求,并在前端使用AngularJS。
我使用了angular-load-bar,它可以完美地自动处理HTTP请求,但它不能自动处理XHR请求。
有什么方法可以让它自动运行XHR?
答案 0 :(得分:0)
XHR与HTTP
首先XHR代表“XmlHTTPRequest API”()。 (另请参阅W3C spec version& Mozilla documentation) 此API由Microsoft引入,然后由WHATWG& W3C促进了基于Ajax的网站和Web应用程序的创建。 当您发出XHR请求时,它会发送HTTP请求
$ http vs HTTP
angular-loading-bar使用angularJS $http拦截器来侦听使用角度 $ http API完成的所有HTTP请求。 角度 $ http API使用XHR发出HTTP请求,但它不会覆盖XMLHttpRequest,也不会覆盖原型。因此,它无法直接使用XHR拦截由代码生成的HTTP请求。
angular-wakanda HTTP请求
angula-wakanda是一个写在Wakanda Framework data provider之上的角度服务。然后,可以使用偶尔添加到Wakanda HTTP(REST,JSON-RPC)API和/或Wakanda数据提供者的新功能更轻松地更新自己。 由于此数据提供程序与框架无关(可与dojo,主干或其他任何内容一起使用),因此它不使用特定于角度的 $ http API,并且其HTTP请求不会被角加载杆强>
如何解决?
为Wakanda数据提供商引入低级适配器层是Wakanda团队已经讨论过的问题。然后,它可以允许选择在某些专用上下文中使用哪个HTTP API(如在其中XHR不是本机HTTP API的nodej中)。将来应该有一个“数据提供者”专用的github存储库添加到Github Wakanda Team Account。在此期间,您可以向Angular-Wakanda Github repository发送功能请求(请不要犹豫,提及此Stack溢出答案),为什么不,也尝试为提案做分叉; - )