jQuery调用.NET 3.5 WebService的JSON返回与参数设置技巧
156 浏览量
更新于2024-08-29
收藏 367KB PDF 举报
本文主要探讨了使用jQuery调用.NET Framework 3.5版本下的WebService时如何获取和处理JSON数据,以及在设置参数时需要注意的问题。文章指出,由于.NET Framework 3.5对JSON的支持,使得jQuery与WebService的交互变得更加便捷。
在jQuery中调用WebService时,通常有POST和GET两种方法。尽管网上有很多关于这个主题的教程,但作者在实际项目中更倾向于使用jQuery而非.NET AJAX。然而,出于安全性考虑,作者建议避免使用GET方法,因为GET请求的数据可能被浏览器历史记录或缓存,从而暴露敏感信息。因此,我们将重点讨论POST方法的参数设置和可能出现的问题。
首先,当使用POST方法调用WebService时,需要设置`UseHttpGet`属性为`false`,例如在以下示例代码中:
```csharp
using System.Web.Script.Services;
using System.Web.Services;
namespace WebService35
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用ASP.NETAJAX从脚本中调用此Web服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = false)]
public string WS1(string param1, string param2)
{
// 方法实现
}
// 其他POST方法...
}
}
```
在这个例子中,`WS1`方法是一个接受两个参数的POST请求,通过`[ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = false)]`装饰器,我们指定了返回JSON格式的数据,并禁止使用GET方法。
对于GET方法,如`WS3`和`WS4`,则需要设置`UseHttpGet`为`true`。然而,GET方法的参数通常会出现在URL中,限制了可以传递的数据量,且不适用于传输敏感信息。
在jQuery中,调用这些Web方法时,需要设置适当的参数,例如:
```javascript
$.ajax({
type: 'POST',
url: 'WebService1.asmx/WS1',
data: JSON.stringify({ param1: 'value1', param2: 'value2' }),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (response) {
// 处理返回的JSON数据
},
error: function (xhr, status, error) {
// 错误处理
}
});
```
这里,`data`字段是JSON格式的字符串,`contentType`指定发送的数据类型,`dataType`则告诉jQuery期望接收的数据类型。
错误处理方面,作者提醒用户,设置不当可能导致请求失败,比如忘记指定`dataType`、JSON格式不正确、参数类型不匹配等。这些问题需要根据错误信息进行排查,确保数据正确序列化并正确传递给服务器。
这篇文章提供了一个关于jQuery与.NET Framework 3.5 WebService交互的实例,特别关注了JSON数据的处理和参数设置,旨在帮助开发者更好地理解和避免常见问题。通过学习,读者能够更好地利用jQuery实现与WebService的安全、高效通信。
3730 浏览量
240 浏览量
189 浏览量
155 浏览量
128 浏览量
102 浏览量
2021-01-02 上传
2013-01-06 上传

weixin_38617451
- 粉丝: 4
最新资源
- 经典J2ME坦克对战游戏:回顾与介绍
- ZAProxy自动化工具集合:提升Web安全测试效率
- 破解Steel Belted Radius 5.3安全验证工具
- Python实现的德文惠斯特游戏—开源项目
- 聚客下载系统:体验极速下载的革命
- 重力与滑动弹球封装的Swift动画库实现
- C语言控制P0口LED点亮状态教程及源码
- VB6中使用SQLite实现列表查询的示例教程
- CMSearch:在CraftMania服务器上快速搜索玩家的Web应用
- 在VB.net中实现Code128条形码绘制教程
- Java SE Swing入门实例分析
- Java编程语言设计课程:自动机的构建与最小化算法实现
- SI9000阻抗计算软件:硬件工程师的高频信号分析利器
- 三大框架整合教程:S2SH初学者快速入门
- PHP后台管理自动化生成工具的使用与资源分享
- C#开发的多线程控制台贪吃蛇游戏源码解析