Сбой аутентификации AJAX

#jquery #asp.net #ajax

#jquery #asp.net #ajax

Вопрос:

Я пытаюсь вызвать веб-метод, используя AJAX в ASP.net

При отладке я столкнулся со следующей ошибкой

 {Message: "Authentication failed.", StackTrace: null,…}
ExceptionType: "System.InvalidOperationException"
Message: "Authentication failed."
StackTrace: null
 

AJAX:

                                 <script type="text/javascript">  

                                    function SaveRecord() {
                                        //Get control's values  

                                        var year = $("#yeartxt").val();
                                        var title = $("#titletxt").val();
                                        var content = $("#contenttxt").val();

                                        //Jquery Ajax call to server side method  
                                        $.ajax({
                                            type: "POST",
                                            url: "Page.aspx/InsertDetails",
                                            data: "{'Year':"   year   ",'Title':"   title   ",'Content':"   content   "}",
                                            contentType: "application/json; charset=utf-8",
                                            dataType: "json",
                                            success: function (data) {
                                                alert("Updated!");
                                            }
                                        });

                                    }
                                </script>  
 

Веб-метод:

         [WebMethod]
        public static string InsertDetails(string Year, string Title, string Content)
 

Настройка маршрута:

             var settings = new FriendlyUrlSettings();
            settings.AutoRedirectMode = RedirectMode.Permanent;
            routes.EnableFriendlyUrls(settings);
 

WebConfig:

      <authentication mode="Forms">
        <forms loginUrl="./SignIn.aspx"></forms>
      </authentication>
 

Я реализовал аутентификацию формы с помощью ASP.net Личность.

Есть способы решить эту проблему?

Комментарии:

1. Только с ошибкой вам трудно помочь, было бы лучше, если бы вы включили код ajax. Возможно, также конечная точка

2. Обновлено. Я добавил код

Ответ №1:

Попробуйте этот код

  $.ajax({
                                        type: "POST",
                                        url: "Page.aspx/InsertDetails",
                                        data: JSON.stringify({ 'Year': Year, 'Title': Title, 'Content': content  }),
                                        contentType: "application/json; charset=utf-8",
                                        dataType: "json",
                                        success: function (data) {
                                            alert("Updated!");
                                        }
                                    });
 

Настройка маршрута:

Прокомментируйте этот код

 //settings.AutoRedirectMode = RedirectMode.Permanent;
 

Комментарии:

1. он выдал эту ошибку {Сообщение: «Недопустимый вызов веб-службы, отсутствует значение для параметра: ‘Year’.», …} ExceptionType: «System. Сообщение InvalidOperationException»: «Недопустимый вызов веб-службы, отсутствует значение для параметра: «Год»».

2. передайте жестко заданные параметры. ПРИМЕР: данные: JSON.stringify({ ‘Год’: 1992, ‘Заголовок’: ‘xyz’, ‘Содержимое’: ‘Ваш контент’ })

3. Это сработало таким образом data: '{Year: "' year '", Title: "' title '", Content: "' content '" }', , спасибо за вашу помощь! 🙂

Ответ №2:

Вероятно, это ваш объект данных, который недостаточно четко определен.

 const data = {'Year':year,'Title': title, 'Content': content};
 

абд затем в вашем запросе:

 ...
data: JSON.stringify(data),
...
 

Это должно сработать, поскольку вы упомянули, что тип данных должен быть json

Комментарии:

1. Я попытался определить данные, как вы предложили. Однако он выдал ту же ошибку

2. та же ошибка: ( Я много раз пытался поиграть с данными и кодом ajax. Ничего не сработало. Связано ли это с форматом перенаправления URL? Я попытался изменить режим перенаправления в RouteConfig на settings.AutoRedirectMode = RedirectMode.Off , и он выдал другую ошибку, которая была {Message: "Invalid JSON primitive: undefined.",…} ExceptionType: "System.ArgumentException" Message: "Invalid JSON primitive: undefined