come impostare l'opzione beforesend nei metodi AJAX di WordPress

23 mar 2012, 00:45:03
Visualizzazioni: 3.22K
Voti: 1

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) {

    });
}
1
Commenti

Questo è il modo sbagliato di implementare ajax in WordPress. Il modo corretto è documentato qui: 5 Consigli per Usare Ajax in WP

random_user_name random_user_name
23 mar 2012 01:46:46
Tutte le risposte alla domanda 2
0

Hai due opzioni:

  1. Usa jQuery.ajax() invece di jQuery.post()
  2. Usa jQuery.ajaxSetup() per modificare il comportamento di beforeSend globalmente.

Riferimento: https://stackoverflow.com/questions/2257975/using-beforesend-and-complete-with-post

23 mar 2012 01:18:25
7

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.

9 ott 2014 02:47:35
Commenti

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

Kar19 Kar19
26 feb 2015 15:38:11

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 josh
26 feb 2015 17:16:29

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

josh josh
26 feb 2015 17:17:36

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 Kar19
26 feb 2015 17:20:20

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 josh
26 feb 2015 23:12:38

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

Kar19 Kar19
27 feb 2015 11:02:25

Fantastico. Mi era sfuggito nella tua risposta. Sono contento che tu l'abbia risolto!

josh josh
27 feb 2015 14:57:35
Mostra i restanti 2 commenti