Javascript Firefox加载项是否有更强大的XMLHttpRequest替代方案?
我目前正在为Firefox编写一个插件,它使用Javascript Firefox加载项是否有更强大的XMLHttpRequest替代方案?,javascript,firefox,xmlhttprequest,firefox-addon,Javascript,Firefox,Xmlhttprequest,Firefox Addon,我目前正在为Firefox编写一个插件,它使用XMLHttpRequest向远程服务器发送一些HTTP请求。但是,我遇到了以下限制: XMLHttpRequest透明地遵循HTTP 3xx重定向(这是不需要的) xmlHttpRequestst忽略某些头的setRequestHeader(例如用户代理) HTTP基本身份验证也由浏览器处理—提示用户输入凭据,但无法禁用此行为 出于这些原因(可能还有其他原因),我正在寻找从Firefox插件中发送HTTP请求的替代方法。我已经环顾了MDN很多地
XMLHttpRequest
向远程服务器发送一些HTTP请求。但是,我遇到了以下限制:
透明地遵循HTTP 3xx重定向(这是不需要的)XMLHttpRequest
t忽略某些头的xmlHttpRequests
(例如setRequestHeader
)用户代理
- HTTP基本身份验证也由浏览器处理—提示用户输入凭据,但无法禁用此行为
注意:我没有使用SDK。我会继续使用
XHR
,但会设置自己的通知回调并直接在频道上操作标题
每个XHR
都有一个通道,它(通常)是a,它也是a(除其他外)
下面应该包括你的第二点
var req = new XMLHttpRequest();
if (req.channel instanceof Ci.nsIHttpChannel) {
req.channel.setRequestHeader("User-Agent", "helloworldbot/1.0", false);
}
我以前在Scriptish中允许用户忽略重定向,这或多或少是您的第一点
auth的东西有点恶心。您可以将XHR.open()
与可选的用户/密码参数一起使用,或者自己构造auth头和/或通过通知回调实现nsIAuthPrompt
/nsIPrompt
如果XHR
还有其他问题,尽管XHR提供的所有好处都不存在了,但您仍然可以使用普通的、低级的频道(nsioservice.newChannel…()
)
由于您的问题太不具体,我现在不想详细说明。我会继续使用XHR
,但会设置自己的通知回调,并直接在频道上操作标题
每个XHR
都有一个通道,它(通常)是a,它也是a(除其他外)
下面应该包括你的第二点
var req = new XMLHttpRequest();
if (req.channel instanceof Ci.nsIHttpChannel) {
req.channel.setRequestHeader("User-Agent", "helloworldbot/1.0", false);
}
我以前在Scriptish中允许用户忽略重定向,这或多或少是您的第一点
auth的东西有点恶心。您可以将XHR.open()
与可选的用户/密码参数一起使用,或者自己构造auth头和/或通过通知回调实现nsIAuthPrompt
/nsIPrompt
如果XHR
还有其他问题,尽管XHR提供的所有好处都不存在了,但您仍然可以使用普通的、低级的频道(nsioservice.newChannel…()
)
由于您的问题太不具体,我现在不想详细说明。我会继续使用XHR
,但会设置自己的通知回调,并直接在频道上操作标题
每个XHR
都有一个通道,它(通常)是a,它也是a(除其他外)
下面应该包括你的第二点
var req = new XMLHttpRequest();
if (req.channel instanceof Ci.nsIHttpChannel) {
req.channel.setRequestHeader("User-Agent", "helloworldbot/1.0", false);
}
我以前在Scriptish中允许用户忽略重定向,这或多或少是您的第一点
auth的东西有点恶心。您可以将XHR.open()
与可选的用户/密码参数一起使用,或者自己构造auth头和/或通过通知回调实现nsIAuthPrompt
/nsIPrompt
如果XHR
还有其他问题,尽管XHR提供的所有好处都不存在了,但您仍然可以使用普通的、低级的频道(nsioservice.newChannel…()
)
由于您的问题太不具体,我现在不想详细说明。我会继续使用XHR
,但会设置自己的通知回调,并直接在频道上操作标题
每个XHR
都有一个通道,它(通常)是a,它也是a(除其他外)
下面应该包括你的第二点
var req = new XMLHttpRequest();
if (req.channel instanceof Ci.nsIHttpChannel) {
req.channel.setRequestHeader("User-Agent", "helloworldbot/1.0", false);
}
我以前在Scriptish中允许用户忽略重定向,这或多或少是您的第一点
auth的东西有点恶心。您可以将XHR.open()
与可选的用户/密码参数一起使用,或者自己构造auth头和/或通过通知回调实现nsIAuthPrompt
/nsIPrompt
如果XHR
还有其他问题,尽管XHR提供的所有好处都不存在了,但您仍然可以使用普通的、低级的频道(nsioservice.newChannel…()
)
由于你的问题太不具体,我现在不想再详细说明了。这正是我需要的。谢谢这正是我需要的。谢谢这正是我需要的。谢谢这正是我需要的。谢谢