"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > JQuery AJAX Llamada para recibir un error de datos, pero PHP ha devuelto JSON

JQuery AJAX Llamada para recibir un error de datos, pero PHP ha devuelto JSON

Publicado el 2025-04-16
Navegar:192

Why is jQuery\'s AJAX Call Receiving Incorrect Data Even Though PHP is Returning JSON?

php Devuelve JSON a jQuery Ajax Call

a pesar de sus esfuerzos para comunicarse con PHP a través de la funcionalidad de JQuery Ajax, está continuamente encontrando el error de "selector activado". Además, los datos recuperados parecen incorrectos. Profundicemos en el problema e identifiquemos la causa potencial.

php con json return

el fragmento proporcionado a continuación ilustra cómo devolver los datos JSON en php:

header('Content-Type: application/json');
echo json_encode([
  'return' => 1,
  'msg1' => 'Message sent OK, we will be in touch ASAP'
]);
exit;
observe la inclusión de encabezado ('content-type: application/json'); antes de echo para especificar el tipo de contenido JSON.

javascript y ajax

Su código JavaScript a continuación debe manejar la llamada ajax con éxito:

$ ('#msgid'). Rutina) '); if ($ ('#formenquiry'). válido ()) { $ ("#msgid"). append ("

(exterior listo) validadado envío a php

"); $ .AJAX ({ URL: "ContactFormProcess3.php", Tipo: "Publicar", Datos: $ ('#formenquiry'). Serialize (), Tipo de datos: "JSON", éxito: function (data) { alerta ("éxito:"); for (clave var en datos) { $ ('#msgid'). append (clave); $ ('#msgid'). append ('=' data [key] ''); } }, Error: function (data) { alerta ("Error:"); for (clave var en datos) { $ ('#msgid'). append (clave); $ ('#msgid'). append ('=' data [key] ''); } } }); } demás { $ ('#msgid'). append ('

(afuera listo) no validado

'); }
$('#msgid').html('

Submitting Form (External Routine)

'); if ($('#formEnquiry').valid()) { $("#msgid").append("

(Outside Ready) VALIDATED send to PHP

"); $.ajax({ url: "ContactFormProcess3.php", type: "POST", data: $('#formEnquiry').serialize(), dataType: "json", success: function (data) { alert("SUCCESS:"); for (var key in data) { $('#msgid').append(key); $('#msgid').append('=' data[key] '
'); } }, error: function (data) { alert("ERROR: "); for (var key in data) { $('#msgid').append(key); $('#msgid').append('=' data[key] '
'); } } }); } else { $('#msgid').append('

(Outside Ready) NOT VALIDATED

'); }

listado supuestamente los datos JSON

[&] la salida que obtiene no está formatado por JSON. Parece que el objeto xhr de jQuery se está imprimiendo en su lugar.

potenciales pitfalls

verifique el siguiente:

Asegúrese de que su script PHP responda con el tipo de contenido correcto (contenido-type: aplicación/json).

    verifique que el script se esté ejecutando correctamente en el servidor, y que PHP está configurado para manejar la salida de JSON.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3