Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

730
Views
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 primario:

 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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!