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

140
Views
¿Cómo puedo convertir jQuery ajax para buscar?

Este fue mi código jQuery antes. Ahora quiero cambiarlo para buscar.

 function fetch(){
 jQuery.ajax({
 url: '<?php echo admin_url('admin-ajax.php'); ?>',
 type: 'post',
 data: { action: 'data_fetch', keyword: jQuery('#keyword').val(), pcat: jQuery('#cat').val() },
 success: function(data) {
 jQuery('#datafetch').html( data );
 }
 });
}

He cambiado el código a este ahora, pero recibo un código de estado de solicitud 400 incorrecto

 document.querySelector('#keyword').addEventListener('keyup',()=>{
 let data = {
 action: 'data_fetch',
 keyword: document.querySelector("#keyword").value
};
let url = "<?php echo admin_url('admin-ajax.php'); ?>";
fetch(url, {
 method: 'POST', // or 'PUT'
 headers: {
 'Content-Type': 'application/json',
 },
 body: JSON.stringify(data),
 })
 .then((response) => response.text())
 .then((data) => {
 document.querySelector("#datafetch").innerHTML = data;
 })
 .catch((error) => {
 console.error('Error:', error);
 });
})

¿Me estoy perdiendo de algo? Es de WordPress si esto ayuda de alguna manera.

almost 4 years ago · Santiago Trujillo
2 answers
Answer question

0

  1. Olvidaste la propiedad pcat en el objeto de datos
  2. jQuery, de forma predeterminada, envía datos codificados de formulario, no datos codificados en JSON. Use un objeto URLSearchParams en lugar de una cadena de JSON y omita el encabezado de tipo de contenido (el navegador agregará el correcto para usted).
almost 4 years ago · Santiago Trujillo Report

0

En su código jQuery definió data como

 data: { action: 'data_fetch', keyword: jQuery('#keyword').val(), pcat: jQuery('#cat').val() },

y en fetch lo definiste como

 let data = {
 action: 'data_fetch',
 keyword: document.querySelector("#keyword").value
};

por lo tanto, no está pasando algún valor que se pasó previamente. No es de extrañar que su servidor falle. Cambiemos tu código a

 let data = {
 action: 'data_fetch',
 keyword: document.querySelector("#keyword").value,
 pcat: document.getElementById("cat").value
};

y prueba esto. Si aún funciona, deberá averiguar qué difiere en la solicitud y asegurarse de que la solicitud que está enviando a través de fetch sea equivalente a la solicitud que envió formalmente a través de jQuery, entonces debería funcionar bien, suponiendo que el cliente: side trabajó previamente con jQuery y el lado del servidor manejó correctamente las solicitudes.

almost 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!