Saltar al contenido

¿Suscribirse a Mailchimp usando jQuery AJAX?

Nuestros desarrolladores estrellas han agotado sus reservas de café, en su búsqueda a tiempo completo por la respuesta, hasta que Fernando encontró la respuesta en Gogs así que hoy la comparte aquí.

Solución:

La solución de @Nagra es buena, pero arrojará un error cuando se ejecute desde el navegador del cliente debido a la Políticas de seguridad del mismo origen en efecto. En esencia, estas medidas de seguridad están ahí para evitar solicitudes entre sitios que ocurren cuando el originador y el remitente están en diferentes dominios.

Si ve errores como el siguiente en la consola de JavaScript, es una clara indicación.

XMLHttpRequest cannot load http://YOUR-MAILCHIMP-URL. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin http://BROWSER-LOCATION is therefore not allowed access.

Para superar este problema, el script debe reescribirse para utilizar CORS o JSONP. Como la API de MailChimp no es compatible con CORS, la única opción es la interfaz JSONP no documentada.

Cambie la URL para utilizar /subscribe/post-json? versión y también añadir &c=? hasta el final. Una vez que se actualice la URL, también deberá modificar la tipo de datos en el hash JSON para ser jsonp

Las primeras líneas actualizadas de la función deben parecerse a las siguientes.

$.ajax({
    url: '//YOUR URL&id=YOUR LIST ID&c=?',
    data: $('#YOUR FORM').serialize(),
    dataType: 'jsonp',

  1. Obtenga la URL de la lista seleccionando el Lista > Formularios de registro > (Formulario clásico). Lo encontrarás en el Área de texto ‘Copiar/pegar en tu sitio’ y lo más probable es que comience con su nombre de usuario.

    $('#your-form').submit(function (e) 
        e.preventDefault();
    
        $.ajax(
            url: 'YOUR URL',
            type: 'GET',
            data: $('#your-form').serialize(),
            dataType: 'jsonp',
            contentType: "application/json; charset=utf-8",
            success: function (data) 
               if (data['result'] != "success") 
                    //ERROR
                    console.log(data['msg']);
                else 
                    //SUCCESS - Do what you like here
               
            
        );
    );
    

Sección de Reseñas y Valoraciones

Al final de la artículo puedes encontrar las explicaciones de otros creadores, tú asimismo tienes el poder mostrar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *