gpt4 book ai didi

c# - jQuery.ajax 调用 Web 服务的问题

转载 作者:太空宇宙 更新时间:2023-11-03 19:36:17 24 4
gpt4 key购买 nike

我正在使用客户端脚本在 ASP.NET 中开发注册表单。所以我使用 jQuery.ajax 方法通过 ASP.NET Web 服务将所有字段的数据发布到服务器。但是当我执行 Jquery.ajax 方法时,它会调用错误函数。我尝试在 Firefox 中使用 Firebug 对其进行调试。它显示错误 500 Internal Server Error。现在我假设要将数据插入到 WebService 中,我需要使用 POST 方法,同样我需要在 Webservice 内部的服务器端有一个函数,可以使用 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");
}

我在服务器上的网络服务:

//My C# Web Service Logic
[WebMethod]
public void InsertUser(User use)
{
FreeUser us = new FreeUser();
us.FirstName = use.FirstName;
.
.
//and so on
}

现在我想是 POST 方法需要 WebInvoke 类作为属性。如何创建一个可以被 JavaScript 调用的方法?为此,我可能必须使用 WebInvoke

最佳答案

如果服务器端有可用的 ASP.NET AJAX(ASP.NET 2.0 + ASP.NET AJAX 扩展 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 对象,您还需要 use JSON.Stringify to generate an appropriate JSON string to pass to the server-side .

关于c# - jQuery.ajax 调用 Web 服务的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1415715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com