当你想在你的代码中找到一个错误时,这很难;当你认为你的代码是不会有错误时,这就更难了。

jquery ajax post方法将json数据发布到特定的url并检索特定的webservice

admin 119℃
我有一个ajax请求将数据发布到asmx webservice,如何将多个数据值作为json数据发布到该url

 $.ajax(
        {
            type:"POST",
            url:"AjaxService.asmx/CheckUserNameAvailability",
            data:"{\"userName\":\"" + userName + "\"}",
            dataType:"json",
            contentType:"application/json",
            success: function(response) 
            {
                if(response.d == true) 
                {
                    $("#display").text("username is available and updated to database");
                     $("#display").css("background-color","lightgreen");
                }
                else
                {
                  $("#display").text("username is already taken");
                     $("#display").css("background-color","red");
                }
            }
        });

这是我检索用户名的特定webservice代码,我如何检索从特定url传递的许多值,例如,我必须检索用户名、密码、电子邮件、电话号码等…

    public class AjaxService : System.Web.Services.WebService
    {
        [WebMethod]
        public bool CheckUserNameAvailability(string userName)
        {
            List<String> userNames = new List<string>() { "azamsharp", "johndoe", "marykate", "alexlowe", "scottgu" };

            var user = (from u in userNames
                        where u.ToLower().Equals(userName.ToLower())
                        select u).SingleOrDefault<String>();

            return String.IsNullOrEmpty(user) ? true : false; 

        }

    }
}

好吧,您的服务方法可以接受字符串数组来获得多个用户名作为i/p。

public bool CheckUserNameAvailability(string[] userNames)

要从Java脚本传递值,请使用Java脚本数组表示法。例如,

   data: '{ userNames: ["Name1", "Name2", "Name3"] }'

对于第二个问题,方法可以返回具有所请求用户的所有相关属性的用户对象。例如,您可以使用另一种方法

public User GetUserDetails(string userName)

其中用户是具有相关属性的类。

要调用此服务方法,必须从js更新url,如下所示:

url:"AjaxService.asmx/GetUserDetails"

您的服务可以有多个web方法,您需要相应地更改url。现在,返回的用户对象可以在js中用作任何javascript对象,例如 response.d.Name 要获取用户名, response.d.Email 电子邮件等。

尝试使用JSON.stringify方法来处理正确编码的数据,而不是连接字符串:

url: 'AjaxService.asmx/CheckUserNameAvailability',
data: JSON.stringify({ 
    userName: userName, 
    password: 'foo', 
    email: 'foo@bar.com' 
}),
dataType: 'json'

如果要向webservice发布数据,只需传递如下多个参数:

 data:"{'userName':'" + userName + "','password':'" + password + "','email':'" + email + "'  }",

您还需要更改WebMethod:

public bool CheckUserNameAvailability(string userName, string password, string email)

转载请注明:我的代码 » jquery ajax post方法将json数据发布到特定的url并检索特定的webservice