Comunidad PHPeros

Lenguajes => JavaScript => AJAX => Mensaje iniciado por: iStocker en 03 de Diciembre de 2012, 00:52:12 am

Título: [jQuery] Error al enviar datos POST con Chrome/CoolNovo
Publicado por: iStocker en 03 de Diciembre de 2012, 00:52:12 am
El problema es que al parecer en Firefox envía los datos correctamente pero en Chrome/CoolNovo no lo hace, no sé porqué & no encuentro alguna solución... Les agradecería si me pudieran ayudar. Estoy usando la última librería de jQuery (code.jquery.com/jquery-lastest.js), uso la última versión de Chrome, uso Windows 7 & si necesitan algún dato más por favor comentarlo & les contestaré, gracias por su atención ñ.ñ

Código: (javascript) [Seleccionar]
$("input").dblclick(function()
{
var data = $(this);
var url = "http://localhost/cmsdrako/habblet/ajax_updatemotto.php";

$.ajax({
type: 'POST',
    url: url,
    data: data.serialize(),
    success: datUp(data)
});

function datUp(data)
{
console.log("LOG " + data.val());
$("input[data-id='motto']").slideUp("slow");
$("#motto").html(data.val()).fadeIn("slow");
}
});
Título: Re:[jQuery] Error al enviar datos POST con Chrome/CoolNovo
Publicado por: Warlox en 09 de Enero de 2013, 22:43:46 pm
Es por que estás haciendo una petición a un dominio http desde AJAX, lo cual no es permitido por los estándares de ECMAScript. Te recomiendo que te fijes si te lanza un error en la consola, y qué error es.

Adicionalmente, un par de recomendaciones sobre la calidad del código:

1- No necesitas declarar la variable URL, ya que el texto nunca va a variar y va a ser utilizado solo una vez.
2- No necesitas crear una función `datUp()`, ya que sólo se va a utilizar una vez en el código, lo mejor es utilizar una función anónima.

Por lo que al final, podrías usar tu código de la siguiente manera:

Código: [Seleccionar]
$('input').on('dblclick', function() {
    var data = $(this);

    $.ajax({
        type: 'POST',
        url: 'http://localhost/cmsdrako/habblet/ajax_updatemotto.php',
        data: data.serialize(),
        success: function() {
            console.log('LOG %s', data.val());
            $('input[data-id="motto"').slideUp('slow');
            $('#motto').html(data.val()).fadeIn('slow');
        }
    });
});

Un saludo ;)