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 dibeforeSendglobalmente.
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?
Kar19
Lo imposterai nell'oggetto "data_object". Quindi appena prima della chiamata $.ajax; dovrai definire data_object. Tipo, data_object = { 'action': 'my_action', 'whatever': 1234 };.
josh
Oppure, nella chiamata ajax; imposta data: come data: { 'action': 'my_action', 'whatever': 1234 },
josh
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é?
Kar19
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:?
josh
in realtà ho trovato il mio problema.. non è wp_admin ma wp-admin. grazie mille amico! :D
Kar19