首页 > 解决方案 > 401:当我尝试在 .net 中通过 AJAX 调用方法时未授权

问题描述

我在框架 4.5.1 中有一个 .net 项目

当我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,如下所示:

在此处输入图像描述

我怎样才能解决这个问题?在过去的几个小时里尝试了很多东西,没有运气..任何帮助将不胜感激。

编辑:我已经使用asynccrossDomain希望解决此问题,但没有帮助。通常它们在我的 ajax 调用中不存在,没有任何变化。

标签: javascriptc#jqueryasp.netajax

解决方案


尝试将您的 AJAX JS 更新为:

$.ajax({
    type: "POST",
    url: "Advanced.aspx/SaveChange",
    data: {myval:"test"},
    success: function (ms) {
        alert('success');
    }
})

推荐阅读