Question

Je veux créer un bookmarklet délicieux dans Firefox qui signets la page en cours avec une étiquette prédéfinie.

Pour preuve de concept, si je saisis cette URL, cela fonctionne:

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

Mais comme bookmarklet ne, je reçois vu refuser l'accès :

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

)()

Est-ce possible via un javascript signet?

Mise à jour:. J'ai essayé, mais encore obtenu le vu refuser l'accès erreur, il a quelque chose à voir avec 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';
    }

)()

Mise à jour 2: Après avoir essayé de nombreuses variantes de ce qui précède et sur les différents navigateurs, je ne peux toujours pas passer le message d'accès refusé , offrant donc une prime.

Était-ce utile?

La solution

Je soupçonne que c'est Firefox essaie de vous protéger contre les problèmes de sécurité lors de l'exécution Javascript. Quand j'ai essayé en tapant votre exemple dans ma barre d'adresse, Firefox m'a incité à me demander si je suis sûr que je veux vous connecter à api.del.icio.us.

Cette autre question concernant HTTP auth ressemble à votre question , peut-être vous aider.


Mise à jour:

je Firebug Net et sa console Javascript, et j'ai pu voir les en-têtes de demande / réponse.

Voici la demande de la console Javascript qui ECHEC:

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

Et, voici la demande de la barre d'adresse, ce qui a marché:

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

La seule différence semble être l'en-tête de Referer, ce qui a provoqué l'accès refusé réponse. Le réglage network.http.sendRefererHeader dans Firefox de about.config peut être réglé à 0 qui désactive l'en-tête de Referer. Quand j'ai essayé cela, la méthode de la console Javascript a commencé à travailler.

Il y a une extension Firefox appelée refspoof qui est utile pour l'envoi de vos propres en-têtes Referer personnalisé , peut-être cela peut aider.

Autres conseils

On dirait que vous êtes manquant url=.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top