2009-09-22 20 views
13

Im Moment arbeite ich wie diesejquery ajax erhalten Beispiel

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

der post-Methode bin mit Bin ich in der Annahme richtig, dass wenn ich eine GET-Anfrage statt POST verwenden wird das Verhalten ist eine synchrone Anforderung ändern dh die Ausführung wartet bis die Antwort vom Server empfangen wurde ??

Kann mir jemand ein jquery GET-Beispiel zeigen, das direkt eine Webmethode eines Webdienstes aufruft?

UPDATE: Mit der Async-Flag, wie unten vorgeschlagen, ist wirklich alles, was ich tun musste, dies funktioniert für mich. Ich bin immer noch neugierig, welche Arbeit mit dem obigen Code gemacht werden muss, um eine GET-Anfrage zu machen. Typ ändern: "GET" hat nicht den gewünschten Effekt!

+0

was meinst du es nicht die ‚gewünschte‘ -Effekt hat? Woher weißt du, dass es immer noch POST ist? –

Antwort

11

Sie können entscheiden, ob Sie die Ajax-Aufruf asynchroner sein wollen oder nicht mit diesem:

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

Um Ihren ersten Punkt zu beantworten, nein: GET und POST sind unabhängig von synchron/asynchron.

Sie können die boolesche Methode async verwenden, um dies zu steuern.

0

sehen diese Probe Ihnen vielleicht helfen

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

Es gibt eine „async“ Flagge für die Herstellung von der Ajax-Aufruf synchron oder asynchron. Sie können es als definieren:

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

Verwandte Themen