发送ajax POST请求接收GET请求

本文关键字:请求 GET 发送 POST ajax | 更新日期: 2023-09-27 18:14:29

我使用以下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开发人员工具的网络选项卡来阐明正在发生的事情,其输出可以在这里找到:http://imgur.com/2LHuch8

编辑:更改我的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";   
    }

和我在上面的方法中放置了一个断点,但它仍然没有捕捉到请求,是否有我错过的东西?

发送ajax POST请求接收GET请求

你的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
    }
});