2009-09-22 63 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 });