Domanda

Voglio creare un bookmarklet Delicious in Firefox che i segnalibri la pagina corrente con un tag predefiniti.

Per la prova di concetto, se entro questo URL, funziona:

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

Ma questo come un bookmarklet non, ottengo accesso negato :

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

)()

Questo è possibile tramite un javascript segnalibro?

Aggiornamento:. Ho provato a farlo, ma ancora ottenuto il accesso negato errore, in modo che abbia qualcosa a che fare con 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';
    }

)()

Aggiornamento 2: Dopo aver provato molte varianti di cui sopra e su diversi browser, non riesco ancora ad andare oltre il messaggio di accesso negato , in modo da offrire una taglia.

È stato utile?

Soluzione

ho il sospetto questo è Firefox cercando di proteggere l'utente da problemi di sicurezza durante l'esecuzione di Javascript. Quando ho provato a digitare nel vostro esempio nella mia barra degli indirizzi, Firefox mi ha spinto a chiedere se sono sicuro che voglio il login per api.del.icio.us.

Questa altra questione relativa HTTP auth è simile alla tua domanda , forse vi aiuterà.


Aggiornamento:

ho usato di Firebug Net pannello e la sua console Javascript, e sono stato in grado di vedere le intestazioni di richiesta / risposta.

Questa è la richiesta da parte del console Javascript, che non è riuscito:

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

E, qui è la richiesta da parte della barra degli indirizzi, che ha funzionato:

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

L'unica differenza sembra essere l'intestazione Referer, che ha causato il accesso negato risposta. L'impostazione di network.http.sendRefererHeader in di Firefox about.config può essere impostato a 0 che disattiva l'intestazione Referer. Quando ho provato a farlo, allora il metodo console Javascript iniziato a lavorare.

V'è un'estensione per Firefox chiamato refspoof che è utile per l'invio di propri intestazioni Referer personalizzati , forse questo può aiutare qui.

Altri suggerimenti

Sembra che tu sia mancante url=.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top