AJAX 调用 ASP.NET 而不是触发服务器端方法

AJAX Call in ASP.NET not Firing Server Side Method

我正在 asp.net 网络表单上开发,在从客户端发出 ajax 调用时无法解决问题。 我得到了客户端脚本:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
                $.ajax({
                    type: "GET",
                    url: "Default.aspx/getnewmails",
                    data: {},
                    dataType: "html",
                    success: function (str)
                    {
                        $("#div2").html(str);
                    }
                });
        });
    </script>

和服务器端方法 return html in string var in Default.aspx.cs:

   [WebMethod]
    public static string getnewmails()
    {

        string URI = "https://somewebsite.com/GetEmails.aspx";
        WebClient webClient = new WebClient();
        System.Collections.Specialized.NameValueCollection formData = new System.Collections.Specialized.NameValueCollection();
        try
        {
            formData["uname"] = "john.g";
            formData["upass"] = "12345";
            byte[] responseBytes = webClient.UploadValues(URI, "POST", formData);
            string Result = Encoding.UTF8.GetString(responseBytes);
            return Result;
        }
        catch
        {
            return "";
        }

    }

出于某种原因,在进行 ajax 调用时,我得到的是 Default.aspx 同一页的 html 而不是我希望从获取新邮件方法... 此外,在服务器端方法中放置断点时,它不会被命中。

感谢您的协助

我已经更新了你的代码,它对我有用。

更新代码:

$.ajax({
            type: "POST",
            url: "Default.aspx/getnewmails",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                $("#div2").html(data.d);
            },
            error: function (xhr, ajaxOptions, thrownError) {
                $("#div2").html('error: ' + xhr.status + ' ' + thrownError);
            }
        });