come impostare l'opzione beforesend nei metodi AJAX di WordPress
Come posso impostare l'opzione beforesend
in AJAX su WordPress? Voglio mostrare un'opzione di caricamento.
Questo è il mio codice:
function showmyvideos() {
var datas="data";
var data = {
action: 'my_vids',
link: datas
};
ajaxurl= "http://localhost/wordpress/wp-admin/admin-ajax.php";
jQuery.post(ajaxurl, data,function(response) {
});
}
Hai due opzioni:
- Usa
jQuery.ajax()
invece dijQuery.post()
- Usa
jQuery.ajaxSetup()
per modificare il comportamento dibeforeSend
globalmente.
Riferimento: https://stackoverflow.com/questions/2257975/using-beforesend-and-complete-with-post

Per la posterità.
Puoi ancora utilizzare $.ajax()
senza dover usare $.ajaxSeteup()
. Tutto quello che devi specificare è il type
e assicurarti che sia impostato su POST
.
$.ajax({
url: localized_script.ajax_url, /* URL AJAX admin dallo script localizzato */
type: 'POST', /* Importante */
data: data_object, /* Oggetto dati inclusi 'action' e tutte le variabili post */
beforeSend: function() {
alert('Prima dell\'invio');
},
success : function(response) {
alert(response); /* Risposta dalla funzione ajax */
},
complete: function() {
alert('Completato');
}
});
Come puoi vedere, puoi impostare diverse funzioni/eventi per beforeSend
, success
e complete
.

Supponiamo che sto usando $.post, ho il campo - action: [nome dell' "add_action('wp_ajax_.." ecc]. Dove lo scrivo quando uso $.ajax?

Lo imposterai nell'oggetto "data_object". Quindi appena prima della chiamata $.ajax
; dovrai definire data_object
. Tipo, data_object = { 'action': 'my_action', 'whatever': 1234 };
.

Oppure, nella chiamata ajax; imposta data:
come data: { 'action': 'my_action', 'whatever': 1234 },

OK, funziona.
Per qualche motivo ricevo un errore
POST http://54.149.xx.xx/wp_admin/admin_ajax.php 404 (Not Found)
nella console.
Hai qualche idea sul perché?

Devi passare l'URL di admin_ajax.php
allo script utilizzando la localizzazione. Puoi provare a usare url: ajaxurl
(invece di url: localized_script.ajax_url
) se è disponibile come variabile JS globale nella pagina dove includi il tuo script. Che valore stai usando per url:
?

in realtà ho trovato il mio problema.. non è wp_admin ma wp-admin. grazie mille amico! :D
