### jQuery结合Json提交数据到Webservice的知识点 #### 1. Json数据提交与接收 Json(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Web服务交互中,使用Json格式提交数据能提高效率并降低数据传输量。 #### 2. jQuery的$.ajax方法 jQuery的$.ajax方法提供了强大的功能来发送异步请求到服务器,并能够处理服务器的响应。在进行Json数据提交时,$.ajax方法能够通过指定`dataType`为`json`来告知服务器端发送的数据类型是Json格式的字符串。 #### 3. GET与POST请求方式 在使用$.ajax方法进行数据提交时,可以通过设置`type`属性来指定请求的方式。GET方式适用于获取数据,而POST方式则适用于提交数据,尤其是数据量较大的情况。 #### 4. contentType设置 `contentType`属性指定了发送信息至服务器时的内容类型。在提交Json数据时,通常设置为`application/json;charset=utf-8`,表示发送的数据类型为Json,并使用UTF-8编码。 #### 5. 使用JSON对象与字符串 在jQuery中,可以通过对象直接赋值的方式构造Json数据,如`data={classCode:"0001"}`。对于复杂的Json数据嵌套结构,则需要构建一个Json字符串,比如`data='{"ProductId":10024,"PropertyList":[{"PropertyId":...}]}'`。 #### 6. 错误处理 在$.ajax方法中,可以定义`error`回调函数,用于处理请求过程中发生的错误。这包括了服务器返回的状态码和错误信息,可以帮助开发者快速定位问题。 #### ***中的Json数据处理 在*** Web服务中,可以通过`[ScriptMethod(ResponseFormat=ResponseFormat.Json, UseHttpGet=true)]`这样的标记来配置方法,使其能够返回Json格式的数据。对于接收的数据,可以通过`HttpContext.Current.Request["parameterName"]`来获取参数值。 #### 8. 参数编码问题 当GET请求中包含非ASCII字符(如中文)时,需要对参数进行编码,例如使用`encodeURI`函数,以确保参数值在服务器端正确解析,避免乱码问题。 #### 9. Json数据的序列化与反序列化 服务器端需要将Json字符串转换为.NET对象,这一过程称为反序列化。相应地,当服务器需要返回Json数据给客户端时,需要将.NET对象序列化为Json字符串。 #### 10. 服务器端的Json处理 在服务器端,使用诸如`JsonConvert.DeserializeObject<YourClass>(jsonString)`来进行反序列化操作,将Json字符串转换为.NET对象。同样,使用`JsonConvert.SerializeObject(yourObject)`进行序列化操作,将.NET对象转换为Json字符串。 #### 11. 示例代码解析 - 使用GET方式提交Json数据示例: ```javascript var data={classCode:"0001"}; $.ajax({ type:"GET", contentType:"application/json;charset=utf-8", url:"/WebServices/ProductPropertyWebService.asmx/GetProductPropertyList", dataType:"json", data:data, success:RenderProperties, error:function(XMLHttpRequest,textStatus,errorThrown){ alert(errorThrown+':'+textStatus); } }); ``` - 使用POST方式提交Json字符串示例: ```javascript var data='{"classCode":"0001","city":"GuangDong"}'; $.ajax({ type:"POST", contentType:"application/json;charset=utf-8", url:"/WebServices/ProductPropertyWebService.asmx/GetProductPropertyList", dataType:"json", data:data, success:RenderProperties, error:function(XMLHttpRequest,textStatus,errorThrown){ alert(errorThrown+':'+textStatus); } }); ``` #### 12. 注意事项 在开发过程中,需要考虑数据的安全性和正确性。对用户输入进行验证和清理,防止注入攻击。同时,确保服务器端处理数据的逻辑正确无误,返回适当的错误信息,以便前端能够正确处理各种情况。
- 粉丝: 4
- 资源: 919
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助