Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用jQueryAjax调用从web方法发送和检索数据?_C#_Javascript_Jquery_Asp.net_Ajax - Fatal编程技术网

C# 如何使用jQueryAjax调用从web方法发送和检索数据?

C# 如何使用jQueryAjax调用从web方法发送和检索数据?,c#,javascript,jquery,asp.net,ajax,C#,Javascript,Jquery,Asp.net,Ajax,我有一个文本框和它旁边的一个按钮。我想通过jqueryajax调用将textbox的内容发送到webmethod,并返回其大写值,并在alert中显示。到目前为止,我有这个代码,但它不工作 JAVASCRIPT: function CallWM() { var name = $('#name').val(); RealCallWM(name); } function RealCallWM(na

我有一个文本框和它旁边的一个按钮。我想通过jqueryajax调用将textbox的内容发送到webmethod,并返回其大写值,并在alert中显示。到目前为止,我有这个代码,但它不工作

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:

替换:

data: '{name: ' + 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
属性,就好像您的web方法中存在异常一样。很可能服务器根本不会返回任何JSON。

根据您的评论,我理解您的问题尚未解决,所以请尝试一下

    function RealCallWM(name) {
        $.ajax({
            type: "POST",
            url: "Default.aspx/UpperWM",
            data: JSON.stringify({ name: $('#name').val() }),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            async: true,
            success: function (data, status) {
                console.log("CallWM");
                alert(data.d);
            },               
            failure: function (data) {
                alert(data.d);
            },
            error: function (data) {
                alert(data.d);
            }
        });
    }

您收到的控制台错误消息是什么?未捕获引用错误:响应未定义OK,如Darin所述,使用JSON.stringify(name)@Delphian我按照Darin的建议进行了更改,但我收到了控制台错误“未捕获引用错误:响应未定义”函数“CallWM”中“msg”的用法是什么,您在调用时没有传递值只是为了进一步的启发,请参见Darin是正确的,
jQuery.ajax()
方法没有
失败
回调。很抱歉响应太晚,我做了更改,但我收到了控制台错误“ncaught ReferenceError:CallWM未定义”这段javascript代码是在哪里编写的?它是否在单独的javascript文件中?您是否在Web表单中引用了此文件?您还必须在按钮之前引用它。另外,因为您使用的是jQuery,所以不要忘记在自定义javascript代码之前引用它。它位于head标记内的同一个文件中。相同错误未捕获引用错误:未定义响应,我想我们是在错误的位置查找问题。我知道这一定很愚蠢,我正试图找出是什么导致了这个错误。
{"name":"some value"}
$.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);
    }
});
    function RealCallWM(name) {
        $.ajax({
            type: "POST",
            url: "Default.aspx/UpperWM",
            data: JSON.stringify({ name: $('#name').val() }),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            async: true,
            success: function (data, status) {
                console.log("CallWM");
                alert(data.d);
            },               
            failure: function (data) {
                alert(data.d);
            },
            error: function (data) {
                alert(data.d);
            }
        });
    }