Solo lectura

Google Chrome - Foro de ayuda

Esta página web es un archivo de los hilos antiguos de los foros de Google. Más información

Cargar extensión con respuesta en php mediante ajax

Salto On line
4/09/16 12:49
Hola: he creado una extensión con un formulario que consulta mediante ajax la página de donde obtiene el resultado para mostrarlo; (lo muestra dentro de la misma página mediante:
<script>
            $("#botonEnviar").on('click', function () {
                mostrarResultdo();
            });
        </script>
.
Sin embargo a la hora de ejecutarlo desde mi localhost, no me funciona y si consulto la consola me da este mensaje:
Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' blob: filesystem: chrome-extension-resource:". Either the 'unsafe-inline' keyword, a hash ('sha256-+P4PIXbUzzzEwtdGKmblU01DlQGgxDLx9kha+Fe8gvQ='), or a nonce ('nonce-...') is required to enable inline execution.

Todo funciona perfecto des una página web, tanto en localhost como en servidor externo, pero no funciona como extensión.

Muchas gracias y slds.

Respuestas (9)

avm99963
5/09/16 7:18
¡Hola Salto On line!

Una de las peculiaridades que tiene la plataforma de extensiones/aplicaciones de Chrome es que los scripts deben estar programados en archivos a parte e incluidos mediante <script src="{script_path}"></script>.

Entonces para solucionar esto tendrías que crear un archivo con el código Javascript...

javascript.js:
$("#botonEnviar").on('click', function () {
    mostrarResultdo
();
});

...y después incluirlo en el archivo HTML principal.

<script src="javascript.js"></script>

Para más información:
¿Fue de ayuda? Espero tu respuesta ;)

Saludos :-)

Para continuar con la conversación, debes regresar al Foro.
Las respuestas por correo electrónico no llegan  Acceder al hilo
Salto On line
5/09/16 7:42
Gracias por la pronta respuesta; a continuación parte del código que tengo implementado:
En el index.html una vez finalizado el form:
<div id = "resultado">
            </div>
        </section>
        <script src="jquery.min.js" type="text/javascript"></script>
        <script src="funciones.js" type="text/javascript"></script>

        <script>
            $("#botonEnviar").on('click', function () {
                mostrarResultdo();
            });
        </script>
Luego en el php de resultado al final luego de realizado los cálculos:
$arr = ["datos" => $datos];
echo json_encode($arr);
y en el json:
function mostrarResultdo() {
      var datos_formulario = $("#formResultado").serialize();
      console.log("datos_formulario--> "+datos_formulario);
    $.ajax({
        type: 'POST',
        url: 'resultado.php',
        data: datos_formulario,
        dataType: 'json',
        beforeSend: function (objeto) {
        },
        success: function (json) {
            $("#resultado").html(json.datos);
        },
        error: function (e) {
        },
        complete: function (objeto, exito, error) {
        }
    });
}

Saludos y agradecido desde ya.
avm99963
5/09/16 7:45
¡Hola de nuevo!

Entonces, ¿no puedes añadir el $("#botonEnviar").on('click', function () { mostrarResultdo(); }); en el archivo funciones.js o añadirlo en otro separado? Eso solucionaría el problema.

Saludos :-)
Salto On line
5/09/16 8:30
Así está ahora en el index, con la llamada al javascript :
<div id = "resultado">

            </div>
        </section>
        <script src="jquery.min.js" type="text/javascript"></script>
        <script src="funciones.js" type="text/javascript"></script>
        <script src="javascript.js"></script>
Y así el js:
$("#botonEnviar").on('click', function () {
    mostrarResultdo();
});

y no funciona entregando los resultados, si bien ya no aparece el aviso en la consola.

Sdls y gracias
Salto On line
5/09/16 8:31
Me olvidé de decir que de esta forma tampoco funciona como página web, cosa que con el código anterior si funcionaba. Vale.
avm99963
5/09/16 8:58
¿Lo incluiste en el mismo sitio donde estaba anteriormente?

Saludos :-)
Salto On line
5/09/16 10:32
Todo igual salvo que hice el archivo JavaScript.js y al index le coloque el enlace como lo muestro en el mensaje anterior.
Sdls
avm99963
5/09/16 10:33
¡Hola de nuevo!

Te contacto por privado.

Saludos :-)
Salto On line
5/09/16 10:36
ok. muchas gracias