Soporte » WordPress Avanzado » Error 400 al usar ajax

  • AL intentar usar ajax me esta dando este fallo cuando la ruta parece que es correcta

    /wp-admin/admin-ajax.php 400

    Dejo el codigo que uso

    en la pagina php

    jQuery(‘#generar’).click(function(){
    jQuery.ajax({
    type : «post»,
    url: «/wp-admin/admin-ajax.php»,
    data : {
    web: jQuery(‘#web’).is(‘:checked’),
    app : jQuery(‘#app’).is(‘:checked’)

    },
    error: function(response){
    console.log(response);
    console.log(‘error’);
    },
    success: function(response) {
    jQuery(‘#generado’).text(response);
    console.log(‘oK’);
    }
    })
    });

    en functions

    add_action(‘wp_ajax_nopriv_ajaxpresupuesto’,’ajaxpresupuesto’);
    add_action(‘wp_ajax_ajaxpresupuesto’,’ajaxpresupuesto’);

    function ajaxpresupuesto(){

    $web = $_POST[‘web’];
    $app = $_POST[‘app’];

    $response = [];

    if($web === true ){
    $respuesta = ‘Esto es la respuesta de Ok dado en el formulario en <b>Web</b>, Aqui ira todo el contenido de la misma y asi se hara en todos los checkbox’;
    array_push($response);
    }

    if($app === true ){
    $respuesta = ‘Esto es la respuesta de Ok dado en el formulario en <b>app</b>, Aqui ira todo el contenido de la misma y asi se hara en todos los checkbox’;
    array_push($response);
    }

    echo wp_send_json_success($response);

    wp_die();
    }

    No se si aquí en functions necesito configurar algo más

    • Este debate fue modificado hace 1 semana, 1 día por  lujan82.
    • Este debate fue modificado hace 1 semana, 1 día por  lujan82.
Viendo 1 respuesta (de 1 total)
  • Adrián de Grafreak

    (@adriandegrafreak)

    Buenas,

    Parece que en la llamada ajax te estás dejando lo más importante, el action.

    Deberías tener action : ‘ajaxpresupuesto’

    Según la documentación https://codex.wordpress.org/AJAX_in_Plugins

    <script type="text/javascript" >
    jQuery(document).ready(function($) {
         var data = {
    	 'action': 'ajaxpresupuesto',
             'whatever': 1234
         };
         jQuery.post(ajaxurl, data, function(response) {
    	alert('Got this from the server: ' + response);
         });
    });
    </script>

    Si no no estás conectando bien el ajax con el PHP.
    Espero que son esto puedas solucionarlo.

Viendo 1 respuesta (de 1 total)
  • Debes estar registrado para responder a este debate.