jQuery的ajax传参巧用JSON

本文介绍了一种使用jQuery简化Ajax调用的方法,并通过实例展示了如何更高效地传递JSON数据,包括解决拼接JSON字符串时的常见问题及避免字符型参数的错误处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jQuery的ajax调用很方便,传参的时候喜欢用Json的数据格式。比如: 

JavaScript代码,增加一个评论 
function AddComment(content) { 
    var threadId = $("#span_thread_id").html(); 
    var groupId = $("#span_group_id").html(); 
    var groupType = $("#span_group_type").html(); 
    var title = $("#thread_title").html(); 
    var content = content.replace(/\x22/g,'"'); 
    $.ajax({ 
        url: '/WebService/GroupService.asmx/AddThreadComment', 
        data: '{threadId:' + threadId + ',groupId:' + groupId + ',groupType:' + groupType + ',title:"' + title + '",content:"' + content + '"}',        type: 'post', 
        dataType: 'json', 
        contentType: 'application/json;charset=utf-8', 
        cache: false, 
        success: function(data) { 
            //根据返回值data.d判断是不是成功 
        }, 
        error: function(xhr) { 
            //中间发生异常,查看xhr.responseText 
        } 
    }); 


这中间最麻烦,最容易出错的也是拼接Json字符串,字符型参数的值要添加引号,而且对于用户输入的文本字段要对',/等进行特殊处理 

意外的机会,上司给我推荐了一种新的方法,看下面代码: 

JavaScript代码,巧用JSON传参数 
function AddComment(content) { 
    var comment = {}; 
    comment.threadId = $("#span_thread_id").html(); 
    comment.groupId = $("#span_group_id").html(); 
    comment.groupType = $("#span_group_type").html(); 
    comment.title = $("#thread_title").html(); 
    comment.content = content; 
    $.ajax({ 
        url: '/WebService/GroupService.asmx/AddThreadComment', 
        data: $.toJSON(comment), 
        type: 'post', 
        dataType: 'json', 
        contentType: 'application/json;charset=utf-8', 
        cache: false, 
        success: function(data) { 
            //根据返回值data.d处理    
        }, 
        error: function(xhr) { 
            //中间发生异常,具体查看xhr.responseText 
        } 
    }); 


直接用$.toJSON(对象)即可; 
jQuery的JSON插件:http://code.google.com/p/jquery-json/
### 如何使用 jQuery 的 `post` 方法传递数 为了通过 jQuery 向服务器发送 POST 请求并传递数,可以利用 `.ajax()` 或者更简洁的 `.post()` 方法。下面展示了一个简单的例子来说明如何实现这一点。 ```javascript $.post("/api/users", { id: "123", token: "abcde-token-value", geo: "someGeoData" }, function(data, status){ console.log("Data: " + data + "\nStatus: " + status); } ); ``` 在这个实例里,路径 `/api/users` 是接收请求的服务端地址;对象 `{}` 中包含了要提交给服务端的数据键值对;最后一个匿名函数则是成功回调处理程序,在这里可以根据返回的结果执行进一步的操作[^1]。 当涉及到向 Web API 发送复杂类型的 `[FromBody]` 数时,则需要注意 JSON 数据格式以及设置正确的 HTTP 头部信息以确保数据被正确解析[^2]: ```javascript $.ajax({ url: "/api/values", type: "POST", contentType: "application/json; charset=utf-8", dataType: "json", data: JSON.stringify({ name: "John Doe", age: 30 }), success: function(response) { alert(JSON.stringify(response)); }, failure: function(errMsg) { alert(errMsg); } }); ``` 此代码片段展示了怎样配置 AJAX 调用来传送复杂的 JavaScript 对象作为主体内容,并指定了响应的内容类型为 JSON。这有助于与基于 .NET Core/Web API 构建的应用程序进行交互。 对于数据库通信而言,通常会结合后端框架(如 ASP.NET MVC/WebAPI)创建相应的控制器动作或 API 接口用于处理来自前端页面发出的各种 CRUD 操作请求。而 jQuery 则负责构建异步调用逻辑并将用户输封装成适当的形式传送给服务器侧[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值