<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        jQuery結合Json提交數據到Webservice,并接收從Webservice返回的Json數據_jquery

        來源:懂視網 責編:小采 時間:2020-11-27 20:58:11
        文檔

        jQuery結合Json提交數據到Webservice,并接收從Webservice返回的Json數據_jquery

        jQuery結合Json提交數據到Webservice,并接收從Webservice返回的Json數據_jquery:jQuery ajax webservice:get 和 post 一、GET 方式 客戶端 代碼如下: var data = { classCode: 0001}; // 這里要直接使用JOSN對象 $.ajax({ type: GET, contentType: application/json; charset=utf
        推薦度:
        導讀jQuery結合Json提交數據到Webservice,并接收從Webservice返回的Json數據_jquery:jQuery ajax webservice:get 和 post 一、GET 方式 客戶端 代碼如下: var data = { classCode: 0001}; // 這里要直接使用JOSN對象 $.ajax({ type: GET, contentType: application/json; charset=utf

        jQuery ajax webservice:get 和 post
        一、GET 方式
        客戶端
        代碼如下:
        var data = { classCode: "0001"}; // 這里要直接使用JOSN對象
        $.ajax({
        type: "GET",
        contentType: "application/json; charset=utf-8",
        url: "/WebServices/ProductPropertyWebService.asmx/GetProductPropertyList",
        dataType: "json",
        anysc: false,
        data: data,
        success: RenderProperties,
        error: function (XMLHttpRequest, textStatus, errorThrown) {
        alert(errorThrown + ':' + textStatus); // 錯誤處理
        }
        });

        服務器端
        代碼
        代碼如下:
        [ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)] //UseHttpGet = true
        public List GetProductPropertyList()
        {
        string classCode = HttpContext.Current.Request["classCode"]; // Get 方式,要在查詢字符串里得到參數值
        return PropertyManager.GetPropertySet(classCode, "zh-CN").DataList;
        }

        二、POST 方式
        客戶端
        代碼
        代碼如下:
        var data = '{ classCode: "' + classCode + '", city: "GuangDong" }'; // 這里要使用拼接好的JOSN字符串
        $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "/WebServices/ProductPropertyWebService.asmx/GetProductPropertyList",
        dataType: "json",
        anysc: false,
        data: data, // Post 方式,data參數不能為空"",如果不傳參數,也要寫成"{}",否則contentType將不能附加在Request Headers中。
        success: RenderProperties,
        error: function (XMLHttpRequest, textStatus, errorThrown) {
        alert(errorThrown + ':' + textStatus); // 錯誤處理
        }
        });

        服務器端
        代碼
        代碼如下:
        [ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = false)] // UseHttpGet = false
        public List GetProductPropertyList(string classCode, string city) // Post 方式,參數對應JSON字段屬性,并自動賦值直接使用
        {
        return PropertyManager.GetPropertySet(classCode, "zh-CN").DataList;
        }

        注意:GET方法與POST方法不同,有參數的時候,如果參數的值不是ASCII字符(比如中文),GET的參數要encodeURI編碼,要不服務端接收到的數據為亂碼。
        復雜的Json數據提交
        簡單的Json 格式的數據如 { name:Yangjun, age:27 }
        復雜的Json格式的數據,其實只是Json嵌套,比如: {name:yangjun, age:27, child:[{name:yangke, age:1},{name:yangbin, age:2}]}
        如果是這種復雜的Json格式的數據要提交,并在Webservices中獲取,然后根據這個Json格式的字符串,序列成.net對象,應該怎么做呢?
        比如我要提交下面的數據:
        客戶端:
        代碼
        代碼如下:
        var productPropertyTemplate = {"ProductId":10024, "PropertyList":[
        {"PropertyId":18, "PropertyType":"text", "PropertyValue":"號碼是100"},
        {"PropertyId":19, "PropertyType":"checkbox", "PropertyValue":"57|28"}]}
        $.ajax({
        type: "GET",
        contentType: "application/json; charset=utf-8",
        url: "/WebServices/ProductPropertyWebService.asmx/PostProductPropertyList",
        anysc: false,
        data: { propertyList: productPropertyTemplate },
        dataType: "json",
        success: function (result) { alert(result.d) },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
        alert(errorThrown + ':' + textStatus);
        }
        });

        服務器端:
        1、要反序列化Json字符為.net對象,有比較多的開源類庫,我使用的是.net 3.5版本以上自帶的DataContractJsonSerializer,寫一個輔助類:
        代碼
        代碼如下:
        ///
        /// Json序列化和反序列化的幫助方法
        ///

        public class JsonHelper
        {
        ///
        /// JSON序列化:把對象序列化成Json格式的字符串
        ///

        public static string JsonSerializer(T t)
        {
        var ser = new DataContractJsonSerializer(typeof(T));
        var ms = new MemoryStream();
        ser.WriteObject(ms, t);
        string jsonString = Encoding.UTF8.GetString(ms.ToArray());
        ms.Close();
        return jsonString;
        }
        ///
        /// JSON反序列化:根據Json格式的字符串,反序列化成對象
        ///

        public static T JsonDeserialize(string jsonString)
        {
        var ser = new DataContractJsonSerializer(typeof(T));
        var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
        var obj = (T)ser.ReadObject(ms);
        return obj;
        }
        }

        2、因為要反序列化成相應的對象,所以先構造兩個對象類,注意每個類和類的字段前面的特性修改符:
        代碼
        代碼如下:
        [DataContract]
        public class MProductProperty
        {
        [DataMember(Order = 0, IsRequired = true)]
        public int ProductId { set; get; }
        [DataMember(Order = 1, IsRequired = true)]
        public List PropertyList { set; get; }
        }
        public class MProperty
        {
        [DataMember(Order = 0, IsRequired = true)]
        public int PropertyId { set; get; }
        [DataMember(Order = 1, IsRequired = true)]
        public string PropertyType { set; get; }
        [DataMember(Order = 2, IsRequired = true)]
        public string PropertyValue { set; get; }
        }

        3、接收并處理Json數據的Web方法:
        代碼
        代碼如下:
        [WebMethod]
        [ScriptMethod(UseHttpGet = true)]
        public string PostProductPropertyList()
        {
        string jsonString = HttpContext.Current.Request["propertyList"];
        var productProperty = JsonHelper.JsonDeserialize(jsonString); // productProperty 成功反序列化成MProductProperty的對象
        //返回接收成功標識
        return "postsuccess";
        }

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        jQuery結合Json提交數據到Webservice,并接收從Webservice返回的Json數據_jquery

        jQuery結合Json提交數據到Webservice,并接收從Webservice返回的Json數據_jquery:jQuery ajax webservice:get 和 post 一、GET 方式 客戶端 代碼如下: var data = { classCode: 0001}; // 這里要直接使用JOSN對象 $.ajax({ type: GET, contentType: application/json; charset=utf
        推薦度:
        標簽: 提交 接收到 json
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲av片一区二区三区| 免费黄色小视频网站| 亚洲狠狠婷婷综合久久久久| 人妻18毛片a级毛片免费看| 免费国产成人午夜私人影视 | 亚洲免费在线视频| 在线a亚洲老鸭窝天堂av高清| 每天更新的免费av片在线观看| 亚洲国产一区二区a毛片| 一区二区三区观看免费中文视频在线播放 | 两个人的视频高清在线观看免费| va天堂va亚洲va影视中文字幕| 无码一区二区三区免费视频| 亚洲国产日韩精品| 免费观看日本污污ww网站一区| 一级成人a做片免费| 亚洲AV日韩AV天堂久久| 亚洲三级高清免费| 亚洲丰满熟女一区二区哦| 亚洲国产中文字幕在线观看| 中国内地毛片免费高清| 亚洲精品在线视频观看| 国产精品免费观看久久| 免费手机在线看片| 久久久久亚洲精品影视| 成人免费777777| 一级毛片不卡免费看老司机| 亚洲国产天堂久久综合网站| 毛片免费观看网站| 美女巨胸喷奶水视频www免费| 亚洲视频精品在线| 国产hs免费高清在线观看| 全黄大全大色全免费大片| 亚洲资源最新版在线观看| 亚洲AV无码一区二区三区在线观看| 亚洲黄色三级视频| 国产成人3p视频免费观看| 毛片在线全部免费观看| 国产精品高清视亚洲一区二区| 国产精品亚洲二区在线观看| 亚洲一区二区免费视频|