使用jQuery $.ajax方法請求webservice
一、方法返回值為string,將json格式的字符串返回
設置contentType為"application/json;charset=utf-8"(若不設置contentType,返回的默認是xml標記的字符串,不能按照正常解析json的方式來解析)
前台調用返回數據:
success:function(data){
if(data.d){
data=eval("("+data.d+");");//
}
//……其他處理代碼
}
當你做一些項目時,一些前端框架,默認使用$.ajax請求的時候,是沒有加上contentType的,這種情況下,你如果想繼續使用asp.net的webservice,你只能對框架的源文件進行修改,或者添加一個擴展js,覆蓋原先的方法,但前端框架有的會經常更新,更新之后會有一些變動,你再去修改源文件或者再修改擴展的js?這太讓人不爽了,若是別人接手你的項目,改起來也麻煩。
二、方法返回值為void,通過Response對象,輸出字符串
此方法不需要設置contentType,通過以下方式返回
HttpContext.Current.Reponse.Write("{\"xx\":\"xx\"");
HttpContext.Current.Response.End();
這樣在前台獲取的時候,返回的json對象無須使用data.d來獲取
