Pregunta

Quiero crear un bookmarklet deliciosa en Firefox que marca la página actual con una etiqueta predefinida.

Para la prueba de concepto, si entro en esta url, funciona:

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

Pero esto como un bookmarklet no, me sale acceso denegado

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

)()

¿Es esto posible a través de un marcador javascript?

Actualización:. He intentado esto, pero aún así consiguió el acceso denegado de error, por lo que tiene algo que ver 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';
    }

)()

Actualización 2: Después de probar muchas variaciones de lo anterior y en diferentes navegadores, todavía no puedo pasar de la mensaje de acceso denegado , por lo que ofrece una recompensa.

¿Fue útil?

Solución

sospecho que esto es Firefox tratando de protegerse de los problemas de seguridad cuando se ejecuta Javascript. Cuando traté de escribir en su ejemplo en mi barra de direcciones, Firefox me llevó a preguntar si estoy seguro de que quiera conectarse a api.del.icio.us.

Este otro asunto relativo al HTTP auth tiene una apariencia similar a su pregunta , tal vez le ayudará.


Actualización:

He utilizado Net Panel de Firebug y su consola de Javascript, y yo era capaz de ver las cabeceras de petición / respuesta.

Aquí está la solicitud de la consola de Javascript, que falló:

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

Y, aquí está la solicitud de la barra de direcciones, que ha trabajado:

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 única diferencia parece ser la cabecera Referer, lo que causó la acceso denegado de respuesta. El ajuste network.http.sendRefererHeader en Firefox about.config se puede ajustar a 0 que apaga la cabecera Referer. Cuando he intentado esto, entonces el método de la consola Javascript comenzó a trabajar.

Hay una extensión para Firefox llamada refspoof que es útil para el envío de sus propias cabeceras Referer personalizada , tal que puede ayudar aquí.

Otros consejos

Parece que se están perdiendo url=.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top