使用ajax进行前后端交互的方法:(我只测试通了json对象作为参数的方式,其他方式我没有测试通过)
1、前端方法:
传参方式:POST
请求类型:json对象
响应类型:json对象
function test() {var param1Value = "Hello";var param2Value = "World";// 构建发送给服务器的JSON对象var jsonobj = {param1: param1Value,param2: param2Value};$.ajax({type: "POST",//传参方式url: "test01.aspx/tt", // 这里根据你的WebMethod路径进行修改data: JSON.stringify(jsonobj), //请求类型,将对象序列化为JSON字符串后传递到后端contentType: "application/json; charset=utf-8",dataType: "json", //响应类型success: function (data) {// 请求成功的回调函数// data是服务器返回的JSON对象console.log(data);},error: function (error) {// 请求失败的回调函数console.error(error);}});}
2、后端方法:无需创建一个类来接收前端传来的json字符串,需要注意是:使用的接收参数必须与前端定义的json对象中的键名要一致。
[WebMethod][ScriptMethod(ResponseFormat = ResponseFormat.Json)]public static string tt(string param1, string param2){//后端创建json对象var resultObject = new{Message = "Success",Data = new{Param1Result = param1.ToUpper(),Param2Result = param2.ToLower(),SomeOtherData = "Hello from server!"}};// 将对象序列化为JSON字符串并返回return Newtonsoft.Json.JsonConvert.SerializeObject(resultObject);}