2009-09-22 24 views
13

Obecnie używam metody POST jak tenjquery ajax uzyskać przykład

$.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); } 
    } 
}); 

Czy mam rację uważając, że jeśli używam żądania GET zamiast POST zachowanie zmieni się na bycie synchroniczne żądania tj. wykonanie będzie czekać, aż odpowiedź została odebrana z serwera?

Może ktoś mi pokazać przykład GET jquery wywołanie WebMethod z usług internetowych bezpośrednio?

UPDATE: Używanie flagi asynchronicznej jak sugeruje poniżej jest naprawdę wszystko, co potrzebne, aby zrobić to pracuje dla mnie. Nadal jestem ciekawy, co należy zrobić w powyższym kodzie, aby uzyskać żądanie GET. Zmiana typu: "GET" nie ma pożądanego efektu!

+0

co masz na myśli, że nie ma „pożądany” efekt? Skąd wiesz, że to nadal POST? –

Odpowiedz

11

Możesz zdecydować, czy chcesz wywołanie ajax być asynchroniczny lub nie przy użyciu to:

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

Aby odpowiedzieć na twój pierwszy punkt, nie: GET i POST są niezależne od synchronicznego/asynchronicznego.

Można użyć logiczną async metody kontrolowania tego.

0

wygląd próbka ta może pomóc

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

Jest flaga „asynchroniczny” dla podejmowania wywołanie ajax jest synchroniczne lub asynchroniczne. Można go zdefiniować jako:

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