The*_*iot 20
请参考本文章由戴维·沃德.这是一个关于做这些事情的完整教程.你也会发现其他很棒的jquery/ASP.net东西.
编辑: - Dave调用方法没有任何参数,您可以用您要发送的实际数据替换空数据属性:
$.ajax({
type: "POST",
url: "Default.aspx/GetDate",
data: "{'name':'tiger1','hobbies':['reading','music']}",//PUT DATA HERE
contentType: "application/json; charset=utf-8",
dataType: "json",
Run Code Online (Sandbox Code Playgroud)
CMS*_*CMS 11
WebMethods期望一个包含JSON的字符串将在服务器端解析,我使用该JSON.stringify函数将参数对象转换为字符串,并发送数据,我有这样的函数:
jQuery.executePageMethod = function(location, methodName, methodArguments,
onSuccess, onFail) {
this.ajax({
type: "POST",
url: location + "/" + methodName,
data: JSON.stringify(methodArguments), // convert the arguments to string
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data, status) {
var jsonData = JSON.parse(data.d);
onSuccess(jsonData, status);
},
fail: onFail
});
};
Run Code Online (Sandbox Code Playgroud)
我建议您在页面中包含json2.js解析器,以使JSON.stringify函数可以跨浏览器使用.
您可以使用的另一个库是jquery-json库.一旦包括:
var json = $.toJSON(your_object);
Run Code Online (Sandbox Code Playgroud)
我见过的最方便的解决方案是通过使用开源JSON2.js库来解析和"字符串化"复杂的对象数据来简化这一过程.
这两篇优秀的文章详细介绍:
Dave Ward 使用复杂的类型使呼叫服务更少......复杂.
通过JQuery Ajax将JavaScript数组转换为 Chris Brandsma 的Asp.Net WebMethod.
第二篇文章可能与您特别相关,尽管它使用以下签名调用Web 服务方法...
Run Code Online (Sandbox Code Playgroud)public void SendValues(List<string> list)
...它演示了如何使用JSON2.js库来渲染List<string>javascript(使用jQuery,这个例子直接来自第二篇文章):
Run Code Online (Sandbox Code Playgroud)var list = ["a", "b", "c", "d"]; var jsonText = JSON.stringify({ list: list }); // The 'list' is posted like this $.ajax({ type: "POST", url: "WebService1.asmx/SendValues", data: jsonText, contentType: "application/json; charset=utf-8", dataType: "json", success: function() { alert("it worked"); }, failure: function() { alert("Uh oh"); } });
只需使用您的webmethod URL代替Web服务.
| 归档时间: |
|
| 查看次数: |
17066 次 |
| 最近记录: |