摘自:http://www.jb51.net/article/83833.htm

前端代码:

$.ajax({
  type: "get" ,
  dataType: "jsonp" ,
  jsonp: "json" ,
  data: "" ,
  success: function (result) {
  var data = eval(result);
  for ( var i = 0; i < data.length; i++) {
  alert(data[i].ID + "--" + data[i].Name);
  }
  },
  error: function (a, b, c) {
  alert(c);
  }
  }); 

服务端代码:

/// <summary>
/// 获取状态数据信息
/// </summary>
/// <returns></returns>
[WebMethod]
public void getElevatorStatusJsonData()
{
List<List<DeviceInfo>> elevatordatas = new List<List<DeviceInfo>>();
List<SendDicdate> searchList = XmlSerializeHelper.XmlDeserializeFromFile<List<SendDicdate>>(@ConfigUtil.servicePath + ConfigUtil.getConfigByKey( "xmlPath" ) + "查询指令信息.xml" , Encoding.UTF8);
foreach (SendDicdate item in searchList)
{
string key = item.portno + "-" + item.bordrate + "-" + item.sendtype;
List<DeviceInfo> deviceInfoList = (List<DeviceInfo>)Context.Cache.Get(key);
elevatordatas.Add(deviceInfoList);
}
 
String result = "" ;
DataContractJsonSerializer json = new DataContractJsonSerializer(elevatordatas.GetType());
using (MemoryStream stream = new MemoryStream())
{
json.WriteObject(stream, elevatordatas);
result = Encoding.UTF8.GetString(stream.ToArray());
}
String jsoncallback = HttpContext.Current.Request[ "jsoncallback" ];
result = jsoncallback + '(' + result + ')' ;
HttpContext.Current.Response.Write(result);
HttpContext.Current.Response.End();
 
}

方法二


<script src= "http://common.cnblogs.com/script/jquery.js" type= "text/javascript" ></script>
<script type= "text/javascript" >
//跨域(可跨所有域名)
$.getJSON( "http://e.hnce.com.cn/tools/ajax.aspx?jsoncallback=?" , { id: 0, action: 'jobcategoryjson' }, function (json) { alert(json[0].pid); alert(json[0].items[0]._name); }); 

 </script>