使用ASP.NET Webforms发布Ajax

本文关键字:发布 Ajax Webforms NET ASP 使用 | 更新日期: 2023-09-27 18:04:33

我想用ajax调用将数据发布到服务器,但我遇到了一个错误。

  var userdata = {};
    userdata["Name"] = "Saran";
    var DTO = { 'userdata': userdata };
    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "Default.aspx/update",
        data: JSON.stringify(DTO),
        datatype: "json",
        success: function (result) {
            //do something
            alert("SUCCESS = " + result);
            console.log(result);
        },
        error: function (xmlhttprequest, textstatus, errorthrown) {
            alert(" conection to the server failed ");
            console.log("error: " + errorthrown);
        }
    });//end of $.ajax()

我在Default.aspx中创建了一个函数,并尝试通过上述调用访问该函数。

  [WebMethod]
        public static string update(string userdata)
        {
            return "Posted";
        }

错误:

POST http://localhost:33762/Default.aspx/update   401 Unauthorized 52ms

消息"身份验证失败。"StackTrace null ExceptionType
"System.InvalidOperationException">

使用ASP.NET Webforms发布Ajax

首先,您必须在App_Start/RouteConfig.cs中设置/更新为settings.AutoRedirectMode = RedirectMode.Off;

其次,ajax负载的结构不正确,无法对update方法进行适当的调用。请参阅以下更新:

var DTO = { 'userdata': 'Saran' };
$.ajax({
         type: "POST",
         contentType: "application/json; charset=utf-8",
         url: "Default.aspx/update",
         data: JSON.stringify(DTO),
         datatype: "json",
         success: function (result) {
           //do something
           alert("SUCCESS = " + result.d);
               console.log(result);
          },
         error: function (xmlhttprequest, textstatus, errorthrown) {
             alert(" conection to the server failed ");
             console.log("error: " + errorthrown);
         }
      });//end of $.ajax()