关于 view 前台JQuery.ajax 调用 WCF

http://www.cnblogs.com/lei2007/archive/2013/02/20/2919326.html 中Demo3 是跨域调用的Demo,这里总结一下 ajax同域调用的Demo

Demo: Ajax 以 post 方式 调用WCF 接口方法

第一:前台view:

注意点:parval 获取变量后在url 传值需转换成 json 参数类型,即需要字符串转义(在字符串前\转义)。第一次遇到此问题耗时较长,使用get方式可以传值,但由于参数字节较长,所以改成post,可以调到接口方法但参数为空,究其原因是参数类型是字符串非json格式。

 

$("#btnGetInfo").click(function () {



                var url = "JsonDataService.svc/PostJsonICService";



                var parval = $("#T1").val();



                var funcname = "UploadClassInfo";



                var parNum = "1";



                $.ajax({



                    type: "post",



                    contentType: "text/json",



                    dataType: "json",



                    url: url,



                    data: '{ "FuncName":"' + funcname + '","ParamNum":"' + parNum + '","ParamValue":"ds|*|' + parval + '|#|"}',



                    success: function (result) {



                        jQuery("#IDRESULT").html(result);



                    },



                    error: function (XMLHttpRequest, textStatus, errorThrown) {



                        alert(XMLHttpRequest.status);



                        alert(XMLHttpRequest.readyState);



 



                    }



                });



            });



 



        });
View Code

 

 

第二:后台接口:

注意点:如果使用 get方式应是 WebGet,如果使用Post方式 WebInvoke。默认支持json ,还可以xml,注意参数类型。

契约接口:



[OperationContract]



        [WebInvoke(ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]



        string PostJsonICService(string FuncName, string ParamNum, string ParamValue);



契约方法实现:



public string PostJsonICService(string FuncName, string ParamNum, string ParamValue)



{}
svc Code

 

 

 

第三:Webconfig 配置:

注意点:同域调用,即在一个解决方案里面,所以不需要 添加引用服务。之间在view使用ajax调用即可。

跨域调用注意 配置,详见:http://www.cnblogs.com/lei2007/archive/2013/02/20/2919326.html

以上三点是亲自测试的过,下面是参考前辈的,注意参数传值。

View Code
function call(){



 



            var id = Number($("#id").val());

 



            var title = String($("#title").val()); 



            var content = String($("#content").val()); 



            $.ajax({



                type: "post", 



                url: "http://localhost:7000/Service1.svc/Request", 



                data: '{"id":' + id + ',"title":"' + title + ,"content":"' + content + '"}',





                contentType: "application/json; charset=utf-8",



                 success: function(json) { 

                alert(json) 

                  };



                 error: function(error) {

 



                    alert("调用出错" + error.responseText);

 



                }                

Tks:http://www.cnblogs.com/happycat1988/archive/2013/04/09/3009263.html

 

你可能感兴趣的:(jquery)