Ajax跨域调用WebApi接口方法,后台json格式传参数
来源:互联网 发布:office of mac 编辑:程序博客网 时间:2024/05/08 23:20
界面调用webapi接口按钮控件:
<asp:button runat="server" ID="btn" Text="跨域调用接口测试" CssClass="BtnList" OnClick="btn_Click" />
按钮事件:
protected void btn_Click(object sender, EventArgs e) { //json格式模型 Model Mp = new Model(); Mp.Header = "MG_License"; Mp.Flag = "Update"; List<Body> listBody = new List<Body>(); Body bodyOne = new Body(); bodyOne.LicenseCode = "91758dfc-ab2a-48a9-a699-9512d68c921c"; bodyOne.ACcountsID = "016b3f9044de413189a96203ed324abd"; bodyOne.MacAddress = "88-E5-65-E1-01-25"; listBody.Add(bodyOne); Mp.Body=listBody; string [] AdditionalContent=new string[0]; Mp.Additional = AdditionalContent; //将模型转换成json格式字符串 string _json = JsonConvert.SerializeObject(Mp); _json = "[" + _json + "]"; this.WriteAjaxMessage("UseWebApi('" + _json + "');");//因为接口参数的类型为字符串,所以加上'' }
#region 模型类 public class Model { public string Header { get; set; } public string Flag { get; set; } public List<Body> Body { get; set; } public string[] Additional { get; set; } } public class Body { public string LicenseCode { get; set; } public string ACcountsID { get; set; } public string MacAddress { get; set; } } #endregion
前台脚本方法:UseWebApi()
<script type="text/javascript"> function UseWebApi(json2) { // var json = '[{"Header":"MG_License","Flag":"Update","Body":[{"LicenseCode":"91758dfc-ab2a-48a9-a699-9512d68c921c","ACcountsID":"016b3f9044de413189a96203ed324abd","MacAddress":"88-E5-65-E1-01-25"}],"Additional":[]}]'; //传值的时候是json字符串,回来的值是json格式。 $.ajax({ url: "../../hack/crossdomain/__agent.ashx?url=" + encodeURIComponent("http://ip地址:8080/api/BindBand?param=" + json2),//跨域访问接口,需要使用代理服务(在一般处理程序中执行,此处使用GET代理服务),encodeURIComponent可把字符串作为 URI 组件进行编码 type: "GET", dataType:"json", // async:true,//填不填都可以 success: function (data) { // alert(JSON.stringify(arguments[0][0].Flag));//当function方法里没有参数data时,使用此种方式调用返回来的数据。 alert(data[0].Flag);//提示的值为success }, error: function (data) { // alert(JSON.stringify(arguments[0][0].Flag));//当function方法里没有参数data时,使用此种方式调用返回来的数据。 alert(data[0].Flag);//提示的值为warn } }); } </script>
代理服务(该处是GET服务),即建一般处理程序__agent.ashx
public void ProcessRequest(HttpContext context) { string __oraclerequestaddress = HttpUtility.UrlDecode(context.Request.QueryString["url"]); System.Net.HttpWebRequest __agentrequest = System.Net.WebRequest.Create(__oraclerequestaddress) as System.Net.HttpWebRequest; string __remoteresponsetext = string.Empty; using (System.IO.StreamReader __responsereader = new System.IO.StreamReader(__agentrequest.GetResponse().GetResponseStream())) __remoteresponsetext = __responsereader.ReadToEnd(); context.Response.Write(__remoteresponsetext); }
注:需引用jquery.min.js。。。
0 0
- Ajax跨域调用WebApi接口方法,后台json格式传参数
- Ajax嵌套调用WebApi接口和后台方法(传参)
- Ajax跨域调用后台Restful接口时的JSON转换方法
- java后台接口参数param的json格式
- Ajax调用查看页面的后台返回json格式数据
- ajax传送json格式数据,调用restful接口
- 通过HttpClient调用WebApi的Get、Post方法(返回类型限定为json格式)
- Ajax调用后台方法
- Ajax 调用后台方法
- ajax调用后台方法
- ajax调用后台方法
- 接口后台调用方法
- ajax 调用后台接口示例
- AJAX调用C#后台方法(带参数)
- WebApi 跨域调用
- php json格式简单封装接口方法并调用
- WebApi传递JSON参数
- WebApi传递JSON参数
- Android技巧
- POJ题目分类
- Java文件与io——复制文件和转换流
- 读书笔记《你真的理解什么是财富自由吗?》
- Unhandled event loop exception No more handles
- Ajax跨域调用WebApi接口方法,后台json格式传参数
- MathType交集符号显的矮了如何处理
- java JDBC获取不同数据库连接操作
- HDU1045 Fire Net-二分匹配&缩点
- iOS 时间轴相册 (配Demo下载)
- 2016/8/2 CSS学习笔记 css 字间距、CSS字体间距、css 字符间距
- CSS之关于clearfix--清除浮动(转)
- FileReader上传文件即使显示(但不负责持久化, 只是内存中的回显处理)
- 案例-数据源切换读写分离