2009-03-20 21 views
7

Estoy tratando de crear un bookmarklet que, al hacer clic, solicite información del usuario (una url y un par de otros campos en este caso) y luego enviar esos datos a una página php en mi servidor y luego muestra el resultado.Ajax llamada de Bookmarklet

Me gustaría hacer una llamada de Ajax para que no me redirija a la nueva página, solo obtenga los datos, pero supongo que me encontraría con la limitación de "Política de origen idéntico" de Ajax ... ¿Hay alguna forma conocida de básicamente hacer lo mismo?

Además, ¿cuál sería la mejor manera de pasar los parámetros? Ya tengo un mecanismo para recibir los parámetros como un mensaje de un formulario ... ¿hay alguna forma en que pueda reutilizar esto?

Respuesta

6

Puede establecer un marcador creando un marcador y agregar ese fragmento de código a continuación en su ubicación, pero según same origin policy limitation, eso solo funcionará cuando la pestaña actual esté en la misma ubicación, aquí www.google.com.

Si he entendido bien sus necesidades, eso debería estar bien para su problema.

var request = new XMLHttpRequest(); 
request.open("GET", "http://www.google.com", true); 
request.onreadystatechange = function() { 
    var done = 4, ok = 200; 
    if (request.readyState == done && request.status == ok) { 
    if (request.responseText) { 
     alert(request.responseText); 
    } 
    } 
}; 
request.send(null); 

No sé si POST funcionaría.

1

No podrá hacer una publicación, pero un GET funcionará bien. Si está utilizando algo como jQuery, simplemente creará una etiqueta de script con una URL src que enviará los datos que desea enviar.

Deberá devolver los datos del estilo JSON.

Ver: http://docs.jquery.com/Ajax/jQuery.getJSON

Alternativamente, el bookmarklet podría crear un iframe en la página, y que podría hacer que trabaja de la presentación de los datos (se puede utilizar el poste continuación) si no estaban buscando para comunicarse entre el iframe y la página en sí, pero en su lugar solo usa la entrada del usuario para enviar.