在mozilla Addon Builder中重定向http请求URI
redirect http request URI in mozilla Addon Builder
我在Mozilla的Addon Builder中定义了一个http-on-modify-request
观察者,并希望重定向请求(更改subject.URI.spec
),但Firefox抱怨:
Error: An exception occurred.
Traceback (most recent call last):
File "http://chrome.angrybirds.com/", line 2536, in null
File "http://chrome.angrybirds.com/", line 2344, in null
File "http://chrome.angrybirds.com/", line 2988, in wi
File "http://chrome.angrybirds.com/", line 1756, in ti
File "http://chrome.angrybirds.com/", line 1231, in Ji
File "http://chrome.angrybirds.com/", line 3366, in Ri
File "http://chrome.angrybirds.com/", line 2381, in Di
File "http://chrome.angrybirds.com/", line 2956, in Ni
File "http://chrome.angrybirds.com/", line 3366, in DHb
File "http://chrome.angrybirds.com/", line 3340, in oHb
File "http://chrome.angrybirds.com/", line 1869, in Eic
File "http://chrome.angrybirds.com/", line 3285, in BS
File "http://chrome.angrybirds.com/", line 3362, in _Jb
File "http://chrome.angrybirds.com/", line 3054, in _Bb
File "http://chrome.angrybirds.com/", line 2020, in dJb
File "http://chrome.angrybirds.com/", line 2889, in fJb
File "resource://jid0-[snipped id]-api-utils-lib/observer-service.js", line 176, in null
this.callback(subject, data);
File "resource://jid0-[snipped id]-moddedbirds-url-rewriter-lib/main.js", line 11, in null
if(endsWith(s.URI.spec,search)) s.URI.spec=replace;
[Exception... "Component returned failure code: 0x80004004 (NS_ERROR_ABORT)
[nsIURI.spec]" nsresult: "0x80004004 (NS_ERROR_ABORT)" location: "JS frame
:: resource://jid0-[snipped id]-api-utils-lib/securable-module.js
-> resource://jid0-[snipped id]-moddedbirds-url-rewriter-lib/main.js ::
<TOP_LEVEL> :: line 11" data: no]
为什么不工作?
也许我不能使用http-on-modify-request
观察者重写uri ?
我该怎么做?
是的,nsIChannel文档说"与通道对应的URI"。它的值是不可变的。只读"。不可变检查似乎确实返回NS_ERROR_ABORT (source)。
不幸的是,这个家伙(重定向请求(nsiHttpChannel?)在Firefox扩展)没有发布他发现的解决方案,这个问题也被问在mozillazine这里和这里。
我最好的想法是太多的工作:尝试nsITraceableChannel。弗拉基米尔有一个想法,"把所有必要的电话都打给nsIChannel。"notificationcallback并在此之后取消请求"。Bug 286159对此有一些讨论(在2005年似乎没有办法干净地做到这一点)。
由于这是一个反复出现的问题,如果您得到Necko对等方的确认,然后将其记录在MDC上,那就太好了。
相关文章:
- Meteor如何接收HTTP请求
- 在我的情况下,如何进行http请求
- 使用插件收听Firefox标签的http请求
- http请求使用html而不是json进行响应
- 在node-js路由中发出http请求
- 是否可以在没有HTTP请求或<输入>
- Acync JS HTTP请求通知请求
- PhantomJs在控制台中发出http请求时不会返回任何状态
- PHP处理来自一个页面的http请求,并将其显示在另一个页面上
- Firefox插件-如何发出http请求
- 验收测试主要针对传出的http请求
- 验证HTTP请求来自NFC标签上的点击
- 如何制作'http请求'在Node js中同步
- 为什么我在Cloud9中的http请求总是返回错误
- AngularJS Typeahead和$http请求限制
- HTTP请求使用cURL,但在浏览器中使用javascript时会得到CORS响应
- 如何使用Chrome扩展API获取网页的所有HTTP请求
- 将http请求中的数据传递给C#控制器
- 在初始化路由之前发送$http请求
- 从客户端捕获 HTTP 请求(包括 ajax)