Frage

Ich möchte ein Köstliches Bookmarklet in Firefox erstellen, dass Lesezeichen die aktuelle Seite mit einem vorgegebenen Tag.

Für Proof of Concept, wenn ich diese URL eingeben, funktioniert es:

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

Aber dies als Bookmarklet nicht, ich Zugriff verweigert :

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';
    }

)()

Ist das möglich über ein Javascript-Lesezeichen?

Update:. Ich habe versucht, aber immer noch die Zugriff verweigert Fehler, so dass es etwas mit Javascript / Firefox zu tun

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';
    }

)()

Update 2: viele Variationen der oben genannten und auf verschiedenen Browsern, nachdem er versucht, ich kann immer noch nicht vorbei an den Zugriff verweigert Nachricht , so eine Prämie anbietet.

War es hilfreich?

Lösung

Ich vermute, das Firefox versucht, Sie von Sicherheitsproblemen zu schützen, wenn Javascript ausgeführt wird. Wenn ich Typisierung in Ihrem Beispiel in meiner Adressleiste versucht, aufgefordert, Firefox, mich zu fragen, ob ich bin sicher, dass ich in zu api.del.icio.us anmelden möchten.

Diese andere Frage HTTP Auth schaut auf Ihre Frage ähnlich , vielleicht wird es Ihnen helfen.


Update:

Ich habe Firebug Net Panel und seine Javascript-Konsole, und ich war in der Lage, die Anfrage / Antwort-Header zu sehen.

Hier ist die Anforderung von der Javascript-Konsole, die FAILED:

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

Und hier ist die Anforderung von der Adressleiste, die ARBEITETE:

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

Der einzige Unterschied scheint der Referer Header zu sein, was verursacht die Zugriff verweigert Antwort. Die Einstellung network.http.sendRefererHeader in Firefox about.config kann auf 0, die abwechselnd von dem Referer Header gesetzt werden. Als ich das versucht, dann begann die Javascript-Konsole Methode arbeiten.

Es ist eine Firefox-Erweiterung namens refspoof , die für das Senden Ihrer eigenen benutzerdefinierten Referer Header nützlich ist dass, vielleicht hier helfen.

Andere Tipps

Sieht aus wie Sie fehlt url=.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top