c# - 如何使用 JQuery Ajax 调用从 Web 方法发送和检索数据?

标签 c# javascript jquery asp.net ajax

<分区>

我旁边有一个文本框和一个按钮。我想通过 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:

  Name:    <input id="name" type="text" /> 
<input id="Button1" type="button" value="button" onclick="CallWM();"/></div>
    </form>

网络方法:

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

最佳答案

替换:

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

与:

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

确保正确编码。现在您正在发送以下有效负载:

{name:'some value'}

这显然是无效的 JSON 负载。在 JSON 中,所有内容都应该用双引号引起来:

{"name":"some value"}

这就是为什么您绝对不应该使用一些字符串连接手动构建 JSON,而是使用内置方法 (JSON.stringify)。

旁注:我不确定 $.ajax 方法是否理解名为 failure 的回调。所以:

$.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);
    }
});

另请注意,在您的错误回调中,我已经删除了 response.d 属性,就好像您的网络方法中存在异常,服务器可能根本不会返回任何 JSON。

关于c# - 如何使用 JQuery Ajax 调用从 Web 方法发送和检索数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17655807/

相关文章:

c# - Word自动化打印输出: wait for its finished?

javascript - JQuery Mobile 3 下拉日期选择器?

javascript - 如何使用新的图标更改我的网站图标

c# - 使用 linq-to-entities 将字符串转换为日期时间的大问题

c# - 如何将日期转换为word格式?

c# - 我的 Windows 服务中的 .psess 文件是什么?

javascript - JQuery 过滤器标签值

javascript - 如何在没有 RequireJS 的情况下编写用于页面的 AMD 模块?

javascript - Firefox 52 javascript 滚动触发事件滞后

jquery - 如何在页面加载前加载 load jquery