微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ajax提交json到控制器

什么是 AJAX?

ajax提交json到控制器

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);
    }
});

以上代码使用 jQuery 的 ajax 方法,其中:

  • 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] 举报,一经查实,本站将立刻删除。

相关推荐