AJAX llamada falla al enviar JSON pero funciona con cadena estilo URL

Al hacer una petición AJAX es funciona cuando mis datos están una cadena del estilo de dirección URL.
var options = {
    type: 'post',
    data: 'action=my_action'
};
La función será llamada y devolver bien algunos datos falsos. Si trato de hacer la misma llamada, pero usan JSON, no funciona.

Lo he intentado varias maneras de hacerlo, pero admin.php devolver 1. ¿Hay algo en jQuery o Wordpress que tengo que cambiar para permitir esto? Aquí hay un par de las otras maneras que he probado.

var options = {
    type: 'post',
    data: { action: 'my_action' }
};

var options = {
    type: 'post',
    data: JSON.stringify({ action: 'my_action' })
};
El ejemplo de los médicos tienen utilizando un objeto JSON demasiado. http://codex.wordpress.org/AJAX_in_Plugins http://codex.wordpress.org/AJAX_in_Plugins .



Solución 1

En primer lugar,
stringify
no construir una consulta URL lo serializa en notación de objetos JSON. Y en segundo lugar, no necesitas construir la consulta URL si utiliza jQuery para hacer la llamada AJAX, sólo pasar el objeto JSON como es jQuery.param() internamente se encargará :).

Solución 2

Ignorar esta respuesta si no estás copiando los ejemplos de malas prácticas en el codex de wordpress. Si usted está, recomiendo leer este artículo sobre (y correctamente) utilizando Ajax en WP: http://www.garyc40.com/2010/03/5-tips-for-using-ajax-in-wordpress/ Este artículo es en realidad también vinculado a la página del códice, así que me he quedado preguntando por qué los ejemplos en la página de Códice todavía se escriben como son..




Problemas relacionados

Permitir llamada AJAX a otros papeles que admin

wp_insert_post a veces falla después de llamada a la API

Búsqueda personalizada de Ajax no funciona como se espera

template_redirect no ser llamado al utilizar ajax

Cambio header.php después llamada ajax

Obtener título de post sin utilizar the_title();

Llamada AJAX en wordpress no funciona para el usuario abonado

Ajax no funciona en plugin

Ajax para suscriptores no funciona

Llamada ajax WordPress para usuarios no registrados en, no funciona

Página\/plantilla de formulario de registro personalizado

Llamada AJAX a transitorios

Source: Stack Exchange Inc; License: cc by-sa 3.0 Contacto / Contact