2009-09-22 61 views
13

目前我使用POST方法類似這樣的jQuery的阿賈克斯獲得例如

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

難道我相信,如果我使用一個GET請求而不是POST行爲將變成是一個同步請求更正即執行將等待,直到從服務器接收到響應?

有人可以告訴我一個jQuery的GET示例直接調用web服務的webmethod?

更新:使用如下建議的異步標誌是我需要做的,所以這對我很有用。我仍然對上面的代碼需要做什麼工作感到好奇,以使它成爲GET請求。更改類型:「GET」不具有預期的效果!

+0

你是什麼意思它不具有「所需的」效果?你怎麼知道它仍然是POST? – 2014-09-19 12:50:10

回答

11

你可以決定是否要在Ajax調用是異步或不使用這樣的:

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

爲了回答你的第一點,no:GET和POST獨立於同步/異步。

您可以使用布爾型async方法來控制這一點。

0

看看這個樣本可能幫助你

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

有一個「異步」標誌製作ajax調用同步或異步。你可以將其定義爲:

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