什么是 AJAX?
AJAX(Asynchronous JavaScript and XML)即异步 JavaScript 和 XML,其主要用于实现无需刷新页面即可更新数据的功能。
在 Web 开发中,经常需要向服务器提交数据并获取响应,传统的方式是通过表单提交或者超链接跳转页面。但是这种方式需要刷新整个页面,用户体验不太友好。因此,AJAX 技术应运而生。
那么如何使用 AJAX 提交 JSON 数据到控制器呢?
$.ajax({ url: "/controller/action",type: "POST",data: JSON.stringify({param1: "value1",param2: "value2"}),contentType: "application/json; charset=utf-8",dataType: "json",success: function(result){ console.log(result); },error: function(xhr,status,error){ console.log(xhr); console.log(status); console.log(error); } });
- url:表示要提交数据的控制器地址
- type:表示请求的类型,可以是 GET 或 POST
- data:表示要提交的 JSON 数据
- contentType:表示发送数据的格式,这里使用 application/json
- dataType:表示请求的响应数据类型,这里是 json
- success:表示请求成功后的回调函数,result 表示服务器返回的数据
- error:表示请求失败后的回调函数
需要注意的是,提交数据时需要将 JSON 数据转化为字符串,使用 JSON.stringify() 方法。
在控制器中,可以通过 Request.InputStream 对象获取请求中的 JSON 数据,然后通过反序列化得到对象,如下所示:
public ActionResult Action() { var stream = Request.InputStream; var bytes = new byte[stream.Length]; stream.Read(bytes,bytes.Length); var jsonStr = Encoding.UTF8.GetString(bytes); var data = JsonConvert.DeserializeObject(jsonStr); return Json(data); }
以上代码解析了请求中的 JSON 数据,使用 JsonConvert.DeserializeObject() 方法将 JSON 字符串转化为对象,然后将对象作为 JSON 数据返回。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。