我正在ASP.NET中开发一个注册表单,我在其中使用客户端脚本.所以我使用jQuery.ajax方法通过ASP.NET Web服务将所有字段的数据POST到服务器.但是当我执行Jquery.ajax方法时,它会调用error函数.我尝试在Firefox中使用Firebug进行调试.它显示错误500内部服务器错误.现在我假设将数据插入到WebService中我需要使用POST方法,同样我需要Web服务中的服务器端的一个函数,可以使用POST方法调用.我提供了一些代码片段来说明我所做的事情.
我的客户端脚本:
//My Client Side Function function registerUser() { var User = { FirstName:$get("txtFirstName").value, LastName:$get("txtLastName").value . . //and so on....This way I creat my json object to POST on server }; //jQuery to POST Data jQuery.ajax({ type:"POST", url:"Service/UserRegistration.asmx/InsertUser", data:User, success:notifyUser, error:setErrorField }); } //Function for Success Complition function notifyUser(msg) { alert("Registration Successfull"); }
我在服务器上的Web服务:
//My C# Web Service Logic [WebMethod] public void InsertUser(User use) { FreeUser us = new FreeUser(); us.FirstName = use.FirstName; . . //and so on }
现在我想的是POST方法需要WebInvoke
class作为属性.如何制作一个可以被JavaScript调用的方法?我可能不得不用WebInvoke
这个.
如果您在服务器端提供ASP.NET AJAX(ASP.NET 2.0 + ASP.NET AJAX Extensions v1.0或ASP.NET 3.5+),我发现最简单的方法是使用JSON客户端和服务器端之间.您只需要将[ScriptService]属性添加到您的服务,然后使用此表单来调用服务:
$.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "WebService.asmx/WebMethodName", data: "{}", dataType: "json" });
有关详细信息,请参阅此处的完整帖子:http: //encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/
为了在该示例代码中提供JavaScript对象,您还需要使用JSON.Stringify生成适当的JSON字符串以传递给服务器端.