摘自: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 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>
转载于:https://blog.51cto.com/zhaoyingyatou/1845474