asp.net webservice返回json問題


使用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來獲取


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM