Javascript Ajax触发成功事件,但未到达web方法

Javascript Ajax触发成功事件,但未到达web方法,javascript,c#,jquery,ajax,Javascript,C#,Jquery,Ajax,我使用ajax调用服务器端函数。出于某种原因,成功正在发射,但它没有到达功能 下面是javascript <script type="text/javascript"> $(document).ready(function () { $.ajax({ url: "Server.aspx/sendEmail", data: { name: "foo", company: "bar", country: "foo", email: "bar",

我使用ajax调用服务器端函数。出于某种原因,成功正在发射,但它没有到达功能 下面是javascript

<script type="text/javascript">

$(document).ready(function () {
    $.ajax({
        url: "Server.aspx/sendEmail",
        data: { name: "foo", company: "bar", country: "foo", email: "bar", msg: "bla" },
        async: false,

        success: function (data) {
            var a = 3;
        },
        error: function (a, b) {
            alert("error");
            var a = 43;

        }
    });
});
数据消息(由于某种原因,它正在中断)





调用ASP.NET AJAX页面方法时,请考虑以下几点:

  • 要使用,您需要发出POST请求。这是为了防止

  • 确保
    contentType
    设置为
    application/json

  • 使用
    JSON.stringify
    将JavaScript对象转换为JSON文本
您的JS代码可能与此类似:

$(document).ready(function () {
    var data = { name: "foo", company: "bar", country: "foo", email: "bar", msg: "bla" };
    $.ajax({
        url: "Server.aspx/sendEmail",
        type: "POST",
        data: JSON.stringify(data),
        async: false,
        contentType: 'application/json',
        success: function (data) {
            //Do something 
        },
        error: function (xhr) {
            alert('Request Status: ' + xhr.status
                + ' Status Text: ' + xhr.statusText
                + ' ' + xhr.responseText);
        }
    });
});

如果仍然不起作用,请检查
statusText
中的错误。

无法访问哪个函数。。。?ajax成功触发并不一定意味着您的C#实际发送了一封电子邮件,只是ajax从服务器获得了有效的响应。它不会到达C#web方法。(sendEmail)ajax调用默认使用get,但您需要发布。在选项中添加
类型:“post”
。另外,您使用的是哪个版本的.Net?我花了很长时间才让web方法处理.NET2.0ASPX文件。添加类型:“post”没有帮助,我使用的是.NET4.5P.S。为什么要使用
async:false
?它在某些浏览器中已被弃用,因此您可以预期它将来将停止工作。此外,它在现实中几乎没有必要,而且会导致糟糕的用户体验-它会锁定整个浏览器,因此如果请求的时间超过预期,用户可能会认为浏览器已崩溃并将其杀死。它告诉我:有人试图使用POST请求调用\u0027sendEmail\u0027方法,哪些是不允许的?您是否向
sendmail
功能添加了任何属性?是的,我在检查时添加了属性。它现在正在工作。非常感谢你!美好的很乐意帮忙。
<form method="post" action="./sendEmail?%7b%22name%22%3a%22foo%22%2c%22company%22%3a%22bar%22%2c%22country%22%3a%22foo%22%2c%22email%22%3a%22bar%22%2c%22msg%22%3a%22bla%22%7d" id="form1">
<div>

</div>
<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="368A1591" />
$(document).ready(function () {
    var data = { name: "foo", company: "bar", country: "foo", email: "bar", msg: "bla" };
    $.ajax({
        url: "Server.aspx/sendEmail",
        type: "POST",
        data: JSON.stringify(data),
        async: false,
        contentType: 'application/json',
        success: function (data) {
            //Do something 
        },
        error: function (xhr) {
            alert('Request Status: ' + xhr.status
                + ' Status Text: ' + xhr.statusText
                + ' ' + xhr.responseText);
        }
    });
});