如何使用JQuery Ajax调用发送和检索来自Web方法的数据?

18 浏览
0 Comments

如何使用JQuery Ajax调用发送和检索来自Web方法的数据?

我有一个文本框和一个按钮,并且它们是相邻的。我想通过Jquery ajax调用将文本框的内容发送到webmethod,并获取相同内容的大写值,然后在弹出窗口中显示出来。到目前为止,我有这段代码但是它不起作用。

JAVASCRIPT:

function CallWM()
    {          
        var name = $('#name').val();         
        RealCallWM(name);
    }
    function RealCallWM(name) {
        $.ajax({
            url: 'Register.aspx/UpperWM',
            type: 'POST',
            contentType: 'application/json; charset=utf-8',
            data: { name: JSON.stringify(name) },
            success: OnSuccess(response),
            error: function (response) {
                alert(response.responseText);
            }
        })
    };

HTML:

  姓名:     

    

WEB METHOD:

 [WebMethod]
        public static string UpperWM(string name )
        {
            var msg=name.ToUpper();
            return (msg);
        }

0
0 Comments

问题的原因是在发送和检索数据时,出现了一个未定义的引用错误。解决方法是检查代码的其他部分,找出导致错误的原因。

0
0 Comments

从这段对话中,可以得出问题的原因是在发送数据时,使用了错误的JSON格式,导致无效的JSON负载。解决方法是使用JSON.stringify方法来正确地编码数据。

具体而言,需要将

data: '{name: ' + name + '}',

替换为

data: { name: JSON.stringify(name) },

以确保正确的编码。原来发送的负载是

{name:'some value'}

这显然是一个无效的JSON负载。在JSON中,所有的内容都应该用双引号括起来,所以正确的格式应该是

{"name":"some value"}

另外,还需要注意的是,在错误的回调函数中,将response.d属性移除,因为如果Web方法出现异常,服务器很可能根本不会返回任何JSON。

在进一步的讨论中,提到了failure回调函数不是$.ajax方法所理解的,建议使用error回调函数。

最后,有一个关于CallWM未定义的控制台错误的问题,经过进一步询问,确认了可能是代码位置或引用顺序的问题。

问题的原因是错误的JSON格式,解决方法是使用JSON.stringify方法正确编码数据,并注意回调函数的正确使用和引用顺序的问题。

0