今天要做一个去之前的项目上取数据,打算建一个接口,WebServer。中间遇到了一些问题。就是跨域取值的问题
客户端页面
1.首先Ajax请求的DataTy:'jsonp'这种格式,还要加一个 jsonp: "callback",最为主要的是有一个 回调函数Callback(),可把我折腾坏了。直接上客户端代码:
<script type="text/javascript"> $(function () { $.ajax({ type: "GET", url: "http://localhost:48748/WebService1.asmx/GetGrid", data: "", dataType: "jsonp", jsonp: "callback", success: function(data) { callback(data); }, error: function (error) { console.log(error); } }) }) function callback(data) { alert(data.rows[0].Name); } </script>
后台代码。
2.采用的webserver 服务器,具体配置就不多说了,今天的主题是跨域访问json数据,需要注意的问题就是前面提到的,需要用一个CallBack回调函数,要有一定的格式。请看代码:
[WebMethod] public void GetGrid() { List<Notice> list = new List<Notice>(); list.Add(new Notice { Id=1,Name="xiaoming"}); JavaScriptSerializer json = new JavaScriptSerializer(); var grid = new { rows = list }; Context.Response.Write("callback("+json.Serialize(grid)+")"); }
这点东西搞了一天, 写于:2015年1月27日01:06:09