小编典典

Ajax GET请求到ASP.NET页面方法?

ajax

我在本周遇到的一种情况:我们有一个jQuery Ajax调用,该调用返回到服务器以获取数据

$.ajax(
{
    type: "POST",
    contentType: "application/json; charset=utf-8",
    url: fullMethodPath,
    data: data,
    dataType: "json",
    success: function(response) {
        successCallback(response);
    },
    error: errorCallback,
    complete: completeCallback
});

fullMethodPath是页面上静态方法的链接(比如/MyPage.aspx/MyMethod)。

public partial class MyPage : Page
{
    // snip

    [WebMethod]
    public static AjaxData MyMethod(string param1, int param2)
    {
        // return some data here
    }
}

这行得通,没问题。

一位同事试图用类型为“
GET”的电话代替此呼叫。它坏了,我不得不修复它。最终,我回到了POST,因为我们需要快速修复,但是它一直困扰着我,因为在这种情况下,从语义上来说GET更“正确”。

据我了解,jQuery将数据中的对象转换为查询字符串:/MyPage.aspx/MyMethod?param1=value1&param2=value2但是我能得到的只是页面的内容MyPage.aspx

这仅仅是Page方法的“功能”,还是有一种使GET请求起作用的方法?


阅读 458

收藏
2020-07-26

共1个答案

小编典典

出于安全原因,ASP.Net AJAX页面方法仅支持POST请求。

2020-07-26