1,创建一个asp.net网站

2.创建一个student类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; /// <summary>
/// Student 的摘要说明
/// </summary>
public class Student
{
public Student()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public int Id { get; set; }
public String Name { get; set; }
public int Age { get; set; } }
 3,创建一个webservice;(添加引用-web服务)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Services;
using System.Web.Services; /// <summary>
/// WebService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService { public WebService () { //如果使用设计的组件,请取消注释以下行
//InitializeComponent();
} [WebMethod]
public string HelloWorld() {
return "Hello World";
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = false)] //ajax调用时加上这句话
public List<Student> getStudents() {
//Student s = new Student() {Id= 1,Name= "sa",Age= 18 };
List<Student> list = new List<Student>() {
new Student(){ Id= ,Name= "zhangsna",Age= },
new Student(){Id=,Name="lisi",Age=},
new Student(){Id =,Name="hehe",Age=}
};
return list;
}
[WebMethod]
public Student getStudent()
{
Student s = new Student() {Id= ,Name= "sa",Age= }; return s;
}
}

4,创建一个html页面,ajax调用

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="../Scripts/jquery-1.8.2.min.js"></script>
<script src="../Scripts/jquery-1.8.2.intellisense.js"></script>
<script type="text/javascript">
$(function () {
//1,请求一个字符串hello world
//$.ajax({
// url: "/WebService.asmx/HelloWorld",
// datatype:
//});
//$.post(
// "/WebService.asmx/HelloWorld",
// {},
// function (data) {
// alert($(data).text());
// }
// ); //2,请求getStudents方法
$.ajax({
type: "POST",
contentType: "application/json; charset=utf8",
url: "/WebService.asmx/getStudents",
dataType: "json",
success: successCallback,
error:errorCallback
});
function successCallback(data) {
for (var i = ; i < data.d.length; i++) {
alert(data.d[i].Name + data.d[i].__type);
}
}
function errorCallback(XMLHttpRequest, status, errorThrown) {
alert(status + errorThrown);
}
//3,$.post $.get请求,没有成功;原因contengtype无法设置
//$.post(
// "/WebService.asmx/getStudents",
// { "contentType": "application/json; charset=utf-8" },
// function (data, status, jqxht) {
// alert(jqxht);
// alert(status);
// for (var i = 0; i < data.d.length; i++) {
// alert(data.d[i].Name);
// }
// }, "script"
//);
});
</script>
</head>
<body> </body>
</html>

5,创建一个aspx页面,调用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ServiceReference;
using t74webservice;
public partial class webservice_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
protected void Button1_Click(object sender, EventArgs e)
{
t74webservice.WebServiceSoapClient ws = new t74webservice.WebServiceSoapClient();
//ws.HelloWorld()
t74webservice.Student s=ws.getStudent();
Response.Write(s.Age);
}
}

ok,以上是今天所学内容,两种调用webservice方法;

总结:1,ajax调用:

    a,方法加上特性[scriptMethod(ResponseFormat=ResponseFormat.Json,UserHttpGet=true)]   //true/flase get请求

    (需要引用命名空间 system.Web.Script.Services;);

    b,只能使用$.ajax调用,设置contentType:"application/json;charset=utf-8";

      $.post与$.get不能调用的原因是:无法设置contentType,使其请求为json格式;   待以后处理----

    c,前台使用时:data.d[i].Name; 原因-->返回的json为:{“d”:[{},{}]};

      

function successCallback(data) {
for (var i = ; i < data.d.length; i++) {
alert(data.d[i].Name + data.d[i].__type);
}
}

2,aspx 调用

引用web服务---》输入地址(或发现解决方案服务)

引用命名空间---new----调用方法---ok;

ajax aspx调用webservice,返回json的更多相关文章

  1. ASP.net jQuery调用webservice返回json数据的一些问题

    之前寒假时,试着使用jQuery写了几个异步请求demo, 但是那样是使用的webform普通页面,一般应该是用 webservice 居多. 最近写后台管理时,想用异步来实现一些信息的展示和修改, ...

  2. jQuery调用WebService返回JSON数据

    相信大家都比较了解JSON格式的数据对于ajax的方便,不了解的可以从网上找一下这方面的资料来看一下,这里就不多说了,不清楚的可以在网上查一下,这里只说一下因为参数设置不当引起的取不到返回值的问题. ...

  3. 亲测 asp.net 调用 webservice返回json

    前端脚本 $("#sure").click(function () { var tbody = $("#putsigal tbody"); var trs = ...

  4. Asp.Net_Ajax调用WebService返回Json前台获取循环解析

    利用JQuery的$.ajax()可以很方便的调用 asp.net的后台方法.但往往从后台返回的json字符串不能够正确解析,究其原因,是因为没有对返回的json数据做进一步的加工.其实,这里只需 要 ...

  5. WebService返回json格式数据供苹果或者安卓程序调用

    1.新建一个WebService. 2. /// <summary> /// DemoToJson 的摘要说明 /// </summary> [WebService(Names ...

  6. jquery的ajax异步请求接收返回json数据

    http://www.jb51.net/article/51122.htm jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发 ...

  7. ajax请求、servlet返回json数据

    ajax请求.servlet返回json数据 1.方式一 response.setcontenttype("text/html;charset=utf-8"); response. ...

  8. ajax调用后台webservice返回JSON字符

    后台代码: [WebMethod] public static string LoginTest(string userCode, string password) { UserManageCente ...

  9. asp.net webservice返回json问题

    使用jQuery $.ajax方法请求webservice 一.方法返回值为string,将json格式的字符串返回 设置contentType为"application/json;char ...

随机推荐

  1. [办公应用]如何打印较小边距的PPT讲义(或者每页打印16页)

    关键词:打印 PPT 讲义 4张 边距   今天同事问我如何打印PowerPoint的讲义.她自己使用PowerPoint打印讲义,设置每页4张,但是页边距太大:觉得浪费很大. 经过网上查阅后,现将方 ...

  2. Apache2.2安装

    貌似Apache官网从2.2.X之后不再发布Windows安装版本,需要的话得自己编译 从官网下载2.2.25(我下了一个no-ssl的),安装提示 因为本机已经安装IIS,占用80端口,修改Apac ...

  3. H264--3--NAL层的处理[6]

    ------------------------------H.264的NAL层处理 ------------------------------ H264以NALU(NAL unit)为单位来支持编 ...

  4. codeforces 965E Trie+multiset

    E. Short Code time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  5. 洛谷P1600 天天爱跑步——树上差分

    题目:https://www.luogu.org/problemnew/show/P1600 看博客:https://blog.csdn.net/clove_unique/article/detail ...

  6. matlab绘制曲线对比图

    >> clear;>> x1=[0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8];>> y1=[0,0.55,0.69,0.86,0.93,0. ...

  7. [App Store Connect帮助]六、测试 Beta 版本(2)输入测试信息以供外部测试

    如果您向外部测试员分发您的 App,您需要输入关于您 App 的额外 TestFlight 测试信息以供“Beta 版 App 审核”.您可以在添加 App 至您的帐户时,或在您邀请外部测试员时输入此 ...

  8. 汇编程序52:实验15 安装新的int9中断例程

    assume cs:code ;重写int9中断例程,当按住a后松开,便会产生满屏A stack segment dw dup() stack ends code segment start: mov ...

  9. Asp.NET 知识点总结(二)

    1.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 答:不对,有相同的 hash code 编码格式. 2.swtich是否能作用在byte ...

  10. POJ 2194 2850 计算几何

    题意: 给你了n个圆,让你摞起来,问顶层圆心的坐标 (数据保证间隔两层的圆不会挨着) 思路: 按照题意模拟. 假设我们已经知道了一层两个相邻圆的坐标a:(x1,y1)和b:(x2,y2) 很容易求出来 ...