4

事前定義されたタグで現在のページをブックマークするFirefoxでおいしいブックマークレットを作成したいと思います。

概念実証のために、この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: 上記の多くのバリエーションをさまざまなブラウザで試した後でも、アクセス拒否メッセージを通過できないため、報奨金を提供します。

4

2 に答える 2

2

これは、Javascriptを実行しているときにセキュリティの問題からあなたを保護しようとしているFirefoxだと思います。アドレスバーに例を入力しようとすると、Firefoxからにログインするかどうかを確認するように求められましたapi.del.icio.us

HTTP認証に関するこの他の質問はあなたの質問に似ています、多分それはあなたを助けるでしょう。


アップデート:

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の原因となったヘッダーにあるようです。Firefoxのabout.configの設定network.http.sendRefererHeaderを0に設定すると、ヘッダーがオフになります。これを試してみると、Javascriptコンソールメソッドが機能し始めました。 Referer

独自のカスタムヘッダーを送信するのに役立つrefspoofと呼ばれるFirefox拡張機能があります。これは、ここで役立つ可能性があります。Referer

于 2010-04-29T19:27:15.760 に答える
1

あなたが行方不明になっているようですurl=

于 2010-04-25T17:13:25.353 に答える