gpt4 book ai didi

javascript - 使用 Delicious API 在 Firefox 中创建 Delicious Bookmarklet

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:07:39 27 4
gpt4 key购买 nike

我想在 Firefox 中创建一个 Delicious 书签,它使用预定义的标签为当前页面添加书签。

为了概念验证,如果我输入这个 url,它会起作用:

https://john:pwd@api.del.icio.us/v1/posts/add?url=http://www.google.com&
description=http://www.google.com&tags=testtag

但作为小书签,我访问被拒绝:

javascript:(

function()
{
location.href = 'https://john:pwd@api.del.icio.us/v1/posts/add?url='
+ encodeURIComponent(window.location.href)
+ '&description=' + encodeURIComponent(document.title)
+ '&tags=testtag';
}

)()

这可以通过 javascript 书签实现吗?

更新:我试过了,但仍然出现访问被拒绝错误,所以它与 Javascript/Firefox 有关。

javascript:(

function()
{
location.href = 'https://john:pwd@api.del.icio.us/v1/posts/add?url='
+ 'http://www.google.com'
+ '&description=' + 'http://www.google.com' + '&tags=testtag';
}

)()

更新 2:在尝试了上述的多种变体并在不同的浏览器上之后,我仍然无法通过拒绝访问消息,因此悬赏。

最佳答案

我怀疑这是 Firefox 试图在运行 Javascript 时保护您免受安全问题的影响。当我尝试在地址栏中输入您的示例时,Firefox 提示我询问是否确定要登录 api.del.icio.us

关于 HTTP auth 的另一个问题看起来与您的问题相似,也许它会对您有所帮助。


更新:

我使用了 Firebug 的 Net 面板及其 Javascript 控制台,我能够看到请求/响应 header 。

这是来自 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 header ,它导致了拒绝访问 响应。 Firefox 的 about.config 中的设置 network.http.sendRefererHeader 可以设置为 0,从而关闭 Referer header 。当我尝试这个时,Javascript 控制台方法开始工作。

有一个名为 refspoof 的 Firefox 扩展这对于发送您自己的自定义 Referer header 很有用,也许这对这里有帮助。

关于javascript - 使用 Delicious API 在 Firefox 中创建 Delicious Bookmarklet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2708950/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com