Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

521
Vistas
Wordpress admin-ajax.php 400 (Solicitud incorrecta) error

Estoy tratando de llamar a una función php presionando un botón.

Este es mi código hasta ahora:

 echo("<button onclick=\"import_file()\"> Import </button>");

El archivo javascript upload.js:

 function import_file () { jQuery.ajax({ url: my_ajax_object.ajax_url, data: {action: 'final_save'}, type: "POST", //request type success:function(result){ alert(result); } }); }

y la acción en el archivo php principal:

 function final_save(){ check_admin_referer('import-upload'); set_time_limit(0); $this->file = $file; $result = $this->save(); if ( is_wp_error( $result ) ){ echo $result->get_error_message(); }else{ echo "Success"; } } add_action('wp_ajax_final_save', 'final_save'); add_action('wp_ajax_no_priv_final_save', 'final_save');

También puse en cola los scripts en el mismo archivo:

 function enqueue_script(){ $plugins_url = plugins_url(); $base_url = get_option( 'https://www.virtualmin.archives.com' ); $plugins_dir = str_replace( $base_url, ABSPATH, $plugins_url ); $plugin = $plugins_dir.'/really-simple-csv-importer/upload.js'; wp_enqueue_script('js-file', $plugin, array('jquery'), '', false); wp_localize_script( 'js-file', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) ); //Load jQuery wp_enqueue_script('jquery'); }

y llamando a esta función desde dispatch:

 function dispatch() { $this->header(); $this->enqueue_script(); //more code }

Despacho siendo llamado aquí:

 function really_simple_csv_importer() { load_plugin_textdomain( 'really-simple-csv-importer', false, dirname( plugin_basename(__FILE__) ) . '/languages' ); $rs_csv_importer = new RS_CSV_Importer(); register_importer('csv', __('CSV', 'really-simple-csv-importer'), __('Import posts, categories, tags, custom fields from simple csv file.', 'really-simple-csv-importer'), array ($rs_csv_importer, 'dispatch')); } add_action( 'plugins_loaded', 'really_simple_csv_importer' );

Recibo un error admin-ajax.php 400 (Solicitud incorrecta). ¿Alguna idea de qué estoy haciendo mal? Esto está siendo codificado en un complemento.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Me parece recordar haber leído que necesita registrarse, localizar y luego poner en cola el script cuando usa ajax, así que en lugar de

 wp_enqueue_script('js-file', $plugin, array('jquery'), '', false); wp_localize_script( 'js-file', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );

tratar

 wp_register_script('js-file', $plugin, array('jquery'), '', false); wp_localize_script( 'js-file', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) ); wp_enqueue_script('js-file', $plugin, array('jquery'), '', false);

espero que esto ayude

También sé que probablemente este no sea el problema, pero pensé que necesitabas tener wp_die() o morir; siempre en la función que se llama, es decir, final_save

over 4 years ago · Santiago Trujillo Denunciar

0

Puedo ver que hay un error tipográfico en su archivo php, así que simplemente reemplace la siguiente línea

 add_action('wp_ajax_no_priv_final_save', 'final_save');

con el siguiente

 add_action('wp_ajax_nopriv_final_save', 'final_save');

Espero que esta ayuda para resolver el error.

over 4 years ago · Santiago Trujillo Denunciar

0

Además de las respuestas ya dadas por @jtowell, querrá agregar un nonce a su localización y verificar el referente en el backend. Como esto puede resultar confuso la primera vez, recomiendo encarecidamente seguir los pasos de la documentación.

Tutorial general: https://developer.wordpress.org/plugins/javascript/ajax/

Documentos específicos: https://developer.wordpress.org/reference/functions/check_ajax_referer/

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda