尝试将所有这些技术结合在一起迈出了我的第一步......我有一些小事...... 这是我的服务器端:
[WebMethod(EnableSession = true)] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public string simplestMethod() { return "Simplest method returned"; }
这是我的客户方:
$(document).ready(function(){ $("a").click(function(event){ $.ajax({ type: "POST", url: "http://localhost:53346/d2/TAPI.asmx/simplestMethod", data: "{}", contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { alert(data.d); }, error: function (XMLHttpRequest, textStatus, errorThrown) { alert("Error Occured!" +" | " + XMLHttpRequest +" | " + textStatus +" | " + errorThrown ); } }); }); });
结果是一个警告说:
发生了错误! | [object XMLHttpRequest] | parseerror |未定义。
什么解析失败了,为什么?
我应该提一下,直接调用WS方法确实有效。
非常感谢!
答案 0 :(得分:4)
您的代码在某个可疑地点看起来很不错:url
。您应该将url
替换为"TAPI.asmx/simplestMethod"
或"/d2/TAPI.asmx/simplestMethod"
。
此外,如果您想研究如何使用参数调用Web方法或从Web方法返回更复杂的数据,请查看How do I build a JSON object to send to an AJAX WebService?和asmx web service, json, javascript/jquery?,Can I return JSON from an .asmx Web Service if the ContentType is not JSON?。如何解决来自Web方法内部异常的错误消息,请参阅Get xhr object in vb.net while ajax calling fails。
答案 1 :(得分:2)
如果要在jquery中使用WebMethod,则必须将此标记添加到web.config
<configuration>
<system.web>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
</system.web>
</configuration>
祝你好运