我怀疑这是 Firefox 试图保护您在运行 Javascript 时免受安全问题的影响。当我尝试在地址栏中输入您的示例时,Firefox 提示我询问是否确定要登录api.del.icio.us
.
这另一个问题涉及HTTP 认证 https://stackoverflow.com/questions/4544/http-auth-in-a-firefox-3-bookmarklet看起来和你的问题很相似,也许会对你有帮助。
Update:
我用的是Firebug的Net面板及其 Javascript 控制台,我能够看到请求/响应标头。
以下是来自 Javascript 控制台的请求,但失败了:
GET /v1/posts/add?url=http://www.spoons.com/&description=forks&tags=knives HTTP/1.1
Host: api.del.icio.us
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: https://stackoverflow.com/questions/2708950/2740195
Authorization: Basic XXXXXXXXXXXXXXXXX
Cache-Control: max-age=0
并且,这是来自地址栏的请求,该请求有效:
GET /v1/posts/add?url=http://www.spoons.com/&description=forks&tags=knives HTTP/1.1
Host: api.del.icio.us
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Authorization: Basic XXXXXXXXXXXXXXXXX
Cache-Control: max-age=0
唯一的区别似乎是Referer
标头,这导致了拒绝访问回复。那个设定网络.http.sendRefererHeader在火狐浏览器中关于.config可以设置为 0,这会关闭Referer
标头。当我尝试这个时,Javascript 控制台方法开始工作。
有一个 Firefox 扩展名为refspoof http://refspoof.mozdev.org/faq.html这对于发送您自己的定制很有用Referer
标题,也许这可以帮助这里。