401: не авторизован, когда я пытаюсь вызвать метод через AJAX in. net - PullRequest
0 голосов
/ 08 января 2020

У меня есть проект. net в рамках 4.5.1

Когда я использую ajax, как показано ниже, он работает, и отладчик срабатывает на событие page_load:

$.ajax({
        "async": true,
        "crossDomain": true,
        type: "POST",
        url: "Advanced.aspx",
        contentType: "application/json; charset=utf-8",
        success: function (ms) {
            alert('success');
        }
    })

В моем advanced.aspx.cs у меня есть метод ниже:

[System.Web.Services.WebMethod, ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = false)]
        public static string SaveChange(string myval)
        {
            //dummy code for test purposes.
            string u = myval + "X";
            return u;
        }

Я хочу использовать этот метод через ajax. Чтобы сделать это, я обновляю мой ajax звонок, как показано ниже:

$.ajax({
            "async": true,
            "crossDomain": true,
            type: "POST",
            url: "Advanced.aspx/SaveChange",
            data: {username:"test"},
            contentType: "application/json; charset=utf-8",
            success: function (ms) {
                alert('success');
            }
        })

Однако, когда я делаю это таким образом, это дает мне 401:unauthorized error, как показано ниже:

enter image description here

Как это исправить? Пробовал много вещей за последние несколько часов, не повезло ... Любая помощь будет признательна.

РЕДАКТИРОВАТЬ: Я использовал async и crossDomain в надежде исправить эту проблему, не помогло. Обычно они не существуют в моем ajax вызове, ничего не меняется.

Ответы [ 2 ]

0 голосов
/ 08 января 2020

Нашел ответ здесь: ASP. NET Вызов WebMethod с jQuery AJAX "401 (Unauthorized)"

Я использовал settings.AutoRedirectMode = RedirectMode.Off; вместо RedirectMode.Permanent в ~/App_Start/RouteConfig.cs, что решило проблему.

0 голосов
/ 08 января 2020

Попробуйте обновить AJAX JS до:

$.ajax({
    type: "POST",
    url: "Advanced.aspx/SaveChange",
    data: {myval:"test"},
    success: function (ms) {
        alert('success');
    }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...