C# 发送ajax POST请求接收GET请求

C# 发送ajax POST请求接收GET请求,c#,javascript,jquery,asp.net,ajax,C#,Javascript,Jquery,Asp.net,Ajax,我正在使用以下ajax代码: $.ajax({ url: "Editor.aspx/Page_LoadComplete", data: { "contentCheckCode": contents }, type: "POST", success: function (response) { alert("Contents saved..."); }, error: function (xhr, status, errorThrow

我正在使用以下ajax代码:

$.ajax({
    url: "Editor.aspx/Page_LoadComplete",
    data: { "contentCheckCode": contents },
    type: "POST",
    success: function (response) {
        alert("Contents saved...");
    },
    error: function (xhr, status, errorThrown) {
        alert("Error: " + errorThrown);
    }
});
向网页后面的代码发送post请求,以便将tinyMCE编辑器的内容保存到文件中。我的问题是,隐藏的代码没有收到POST请求,而是GET请求,下面的C#代码强调了这个问题,并且请求没有内容:

protected void Page_LoadComplete(object sender, EventArgs e) {
string test =Request.HttpMethod;
//listens for POST request
if (Request.HttpMethod == "POST"||Request.HttpMethod=="GET")
{
    String requestContents;
    using (Stream inputStream = Request.InputStream)
    {
        using (StreamReader readStream = new StreamReader(inputStream))
        {
            requestContents = readStream.ReadToEnd();
        }
    }
}
关于如何解决这个问题有什么建议吗?我一直在寻找答案,但似乎找不到有类似问题的人。我确信有些事情我做错了或错过了,因为我对jQuery和C都是新手#

另外,作为Stack Exchange的新用户,我还不能在我的帖子中包含图像,但我尝试使用Chrome developer工具的“网络”选项卡来阐明发生了什么,其输出可在此处找到:

编辑:将我的ajax代码更改为以下内容:

$.ajax({
            url: "Editor.aspx/PostHandle",
            data: { "content": contents },
            dataType: "text",
            type: "POST",
            success: function (response) {
                alert("Contents saved...");
            },
            error: function (xhr, status, errorThrown) {
                alert("Error: " + errorThrown);
            }
        });
并将以下方法添加到我的代码隐藏中:

[WebMethod]
    public static String PostHandle(String content) {
        String test = content;
        return "Hello world";   
    }

我在上面的方法上放置了一个断点,但它仍然没有捕获请求,是否有我遗漏的内容?

您的webmethod应该具有以下语法:

[WebMethod]
public static string Page_LoadComplete(int id)
{
    ....
    return "hello";
 }
同样,您的ajax调用:

$.ajax({
    type: "POST",
    url: "YourPage.aspx/Page_LoadComplete",
    data: "{'id':'1'}",
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    success: function (data) {
        //do something with data
    }
});

我相应地更改了代码,但现在每次尝试发送请求时,都会提示我输入用户名和密码,我的凭据显然无效,尽管该页面位于我拥有管理员权限的本地计算机上。我还没有在网站中构建任何身份验证,监督项目的开发人员也没有,web.config文件中也没有关于身份验证的内容。默认情况下,System.Web.Services中是否有内置的内容需要更改以允许我的页面接收post请求?此外,我在为处理请求而编写的方法上放置了一个断点,并且该断点从未停止过。是否需要进行任何身份验证?如果是,那么您需要在ajax请求的标题中设置,但我没有编写任何代码,它仍然提示我输入密码,现在在我尝试加载页面时,甚至在我发送请求之前,它会提示我输入密码,当我注释掉用WebMethod属性this stopsOkay声明的方法时,当我将数据类型更改为text时,passowrd提示已停止,但该方法仍然无法捕获请求,我将把新代码粘贴到问题中