2009-09-22 17 views
13

Al momento sto usando il metodo post come questojquery ajax ottenere esempio

$.ajax({ 
    type: "POST", 
    url: "Servicename.asmx/DoSomeCalculation", 
    data: "{param1ID:"+ param1Val+"}", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(msg) { 
     UseReturnedData(msg.d); 
    }, 
    error: function(err) { 
     alert(err.toString()); 
     if (err.status == 200) { 
      ParseResult(err); 
     } 
     else { alert('Error:' + err.responseText + ' Status: ' + err.status); } 
    } 
}); 

Ho ragione di credere che se uso una richiesta GET invece di POST comportamento cambierà ad essere una richiesta sincrona cioè l'esecuzione attenderà che la risposta sia stata ricevuta dal server ??

Qualcuno può mostrarmi un esempio GET jquery chiamando direttamente un metodo web di un servizio web?

AGGIORNAMENTO: L'utilizzo della bandiera asincrona come suggerito di seguito è davvero tutto ciò che dovevo fare in modo che questo funzioni per me. Sono ancora curioso di sapere quale lavoro deve essere fatto per il codice sopra per renderlo una richiesta GET. Cambio di tipo: "GET" non ha l'effetto desiderato!

+0

Che vuol dire che non ha l'effetto 'desiderato'? Come sai che è ancora POST? –

risposta

11

Si può decidere se si desidera che la chiamata AJAX per essere asincrona o non utilizzo di questo:

$.ajax({ 
    async: false/true, 
    //more options 
}); 
6

Per rispondere al primo punto, no: GET e POST sono indipendenti da sincrono/asincrono.

È possibile utilizzare il metodo booleano async per controllarlo.

0

aspetto questo campione forse aiutare

xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText; 
    } 
    } 
    xmlhttp.open("GET","ajax_info.txt",true); 
    xmlhttp.send(); 
1

C'è una bandiera "asincrono" per fare la chiamata ajax sincrona o asincrona. È possibile definire come:

$.ajax({ async: false/true, //rest of code });