jQuery ajax发送json对象到服务器及contentType应用
54 浏览量
更新于2024-09-02
收藏 123KB PDF 举报
"本文档提供关于jQuery如何使用ajax方法向服务端传递JSON对象以及设置contentType的实例教程。"
在Web开发中,jQuery的ajax函数是一个强大的工具,用于实现异步与服务器端的数据交互。当我们需要传输更复杂的对象,如JSON结构时,就需要正确配置ajax的参数。以下将详细介绍如何使用jQuery的ajax方法传递JSON对象到服务端,并调整contentType设置。
0、基础的键值对传递
在最基础的使用方式中,我们通常以键值对的形式传递数据,如下所示:
```javascript
$.ajax({
url: 'TestHandler.ashx',
type: 'post',
data: {
name: "admin",
age: 10
},
dataType: 'text',
success: function(data) {
alert(data);
}
});
```
这段代码会将`name`和`age`作为POST请求的数据发送,服务端可以通过键名获取对应的值。
0.2服务端处理
在服务端,例如ASP.NET环境中,我们可以像下面这样接收这些参数:
```csharp
public void ProcessRequest(HttpContext context) {
string bodyText = string.Empty;
using (var bodyReader = new System.IO.StreamReader(context.Request.InputStream)) {
bodyText = bodyReader.ReadToEnd();
}
string name = context.Request["name"].ToString(); // "admin"
string age = context.Request["age"].ToString(); // "10"
context.Response.ContentType = "text/plain";
context.Response.Write(bodyText); // "name=admin&age=10"
}
```
0.3 请求观察
在浏览器的开发者工具中,可以看到POST请求的数据是以`formdata`形式发送,键值对之间用"&"分隔。
1、传递复杂JSON对象
当需要传递更复杂的结构,如JSON对象,我们可以采用不同的方式:
1.1 方法一:通过formData传递
一种常见的方式是将JSON对象转换为字符串,然后通过formData传递:
```javascript
var user1 = {
username: 'admin',
age: 10
};
var formData = new FormData();
formData.append('userData', JSON.stringify(user1));
$.ajax({
url: 'TestHandler.ashx',
type: 'post',
data: formData,
contentType: false, // 避免自动设置contentType
processData: false, // 不处理数据,保持formData原样
success: function(data) {
alert(data);
}
});
```
此时,服务端需要从request的body中读取整个字符串,然后解析JSON:
```csharp
string userDataString = context.Request.Form["userData"];
dynamic userData = JsonConvert.DeserializeObject(userDataString); // 使用Json.NET库
string username = userData.username; // "admin"
int age = userData.age; // 10
```
1.2 方法二:设置contentType为'application/json'
另一种方法是直接设置contentType为'application/json',让jQuery自动处理JSON数据:
```javascript
$.ajax({
url: 'TestHandler.ashx',
type: 'post',
data: JSON.stringify(user1), // 将JSON对象转换为字符串
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function(data) {
alert(data);
}
});
```
服务端同样需要解析JSON字符串:
```csharp
string jsonRequestBody = new StreamReader(context.Request.InputStream).ReadToEnd();
dynamic userData = JsonConvert.DeserializeObject(jsonRequestBody);
string username = userData.username; // "admin"
int age = userData.age; // 10
```
总结,jQuery的ajax方法配合正确的contentType设置,能够有效地传递JSON对象到服务端。理解这些原理和实践,有助于在实际项目中灵活处理数据交互。
点击了解资源详情
2020-10-25 上传
2020-10-21 上传
2020-12-08 上传
2020-12-02 上传
2020-10-25 上传
2020-10-28 上传
weixin_38711369
- 粉丝: 10
- 资源: 978
最新资源
- IEEE 14总线系统Simulink模型开发指南与案例研究
- STLinkV2.J16.S4固件更新与应用指南
- Java并发处理的实用示例分析
- Linux下简化部署与日志查看的Shell脚本工具
- Maven增量编译技术详解及应用示例
- MyEclipse 2021.5.24a最新版本发布
- Indore探索前端代码库使用指南与开发环境搭建
- 电子技术基础数字部分PPT课件第六版康华光
- MySQL 8.0.25版本可视化安装包详细介绍
- 易语言实现主流搜索引擎快速集成
- 使用asyncio-sse包装器实现服务器事件推送简易指南
- Java高级开发工程师面试要点总结
- R语言项目ClearningData-Proj1的数据处理
- VFP成本费用计算系统源码及论文全面解析
- Qt5与C++打造书籍管理系统教程
- React 应用入门:开发、测试及生产部署教程