C# asp.net webmethod中的msg.d未定义

C# asp.net webmethod中的msg.d未定义,c#,jquery,asp.net,ajax,webmethod,C#,Jquery,Asp.net,Ajax,Webmethod,我尝试使用jQueryAjax从webmethod中获取一个值。我把它简化为一个输入表单 问题是,它总是失败,msg.d总是未定义。在Firebug中,我可以看到帖子和数据字符串的格式正确。我一辈子也弄不明白为什么这样一直失败。my webmethod中设置的断点被命中,但页面在完全运行之前显示失败消息 知道发生了什么事吗?这是我的密码: 基本形式: <div id="contact"> <ul> <li><div>Name

我尝试使用jQueryAjax从webmethod中获取一个值。我把它简化为一个输入表单

问题是,它总是失败,msg.d总是未定义。在Firebug中,我可以看到帖子和数据字符串的格式正确。我一辈子也弄不明白为什么这样一直失败。my webmethod中设置的断点被命中,但页面在完全运行之前显示失败消息

知道发生了什么事吗?这是我的密码:

基本形式:

<div id="contact">
    <ul>
        <li><div>Name*</div>
        <input name="ctl00$ContentPlaceHolder1$txtName" type="text" id="ctl00_ContentPlaceHolder1_txtName" />
        </li>               
        </ul>
        <ul class="submit">
            <li>* required</li>
            <li class="submit_button">

        <input type="submit" name="ctl00$ContentPlaceHolder1$btnSubmit" value="Submit"     id="ctl00_ContentPlaceHolder1_btnSubmit" />
            </li>
        </ul>
   </div>

您正在从服务器返回字符串,而不是像AJAX
dataType
所寻找的那样返回JSON。字符串没有属性
d


删除
dataType
选项并尝试
alert(msg)

失败消息是什么?@lante:alert中的失败消息是“未定义”的,您是否有可能使用ASP.Net 2.0?正如您所知,您不能在error方法中使用
alert(msg.d)
,因为第一个参数,您所调用的msg不是像
success
方法那样的响应,而是没有
d
属性的jqXHR对象。这就是为什么它会发出未定义的警报。我已经删除了datatype参数,但警报(msg)现在返回[object object]代码,显示的是字符串,警报表示您正在获取一个对象。。。使用
console.log(msg)
并检查浏览器控制台中的数据。。。你在那里看到了什么?还可以在控制台中检查完整的请求并查看实际的响应Ext我有返回字符串的webmethods,它们可以与JSON和Ajax配合使用..好。。您收到的是来自AJAX错误的警报,而不是来自成功的警报
readyState=0
表示您没有连接到服务器文件,我肯定正在命中SendEmail方法中设置的断点。我还可以看到,我正在用相同的方法将name.val()传递到name参数中。这一切都应该在本地进行,不是吗?这个项目还没有启动。
<script type="text/javascript">

    jQuery(document).ready(function () {

        $("#ctl00_ContentPlaceHolder1_btnSubmit").click(function () {
            var name = $("#ctl00_ContentPlaceHolder1_txtName");
            $.ajax({
                type: "POST",
                dataType: "json",
                contentType: "application/json",
                url: "Default.aspx/SendEmail",
                data: "{'name':'" + name.val() + "'}",
                success: function (msg) {
                    alert("success");
                    alert(msg.d);
                },
                error: function (msg) {
                    alert("fail");
                    alert(msg.d);
                }
            });
        });

    });

</script>
[WebMethod]
public static string SendEmail(string name)
{
    return "success";
}