ajax 网络服务 asmx 401 未授权错误
ajax webservice asmx 401 unauthorized error
我有一个需要登录的内部网站,人们可以在会议期间记录笔记和其他信息。我正在尝试通过 AJAX 调用同一服务器上同一文件夹中的 Web 服务来 post 数据。我收到 401 未经授权的错误。
Javascript:
function saveNotes()
{
var json = "{ ID: 5, Note: 'Test Note'}";
$.ajax({
type: "POST",
url: "AutoSaveService.asmx/AutoSave",
data: json,
xhrFields: { withCredentials: true },
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
var data = JSON.parse(r.d);
console.log(data.M + ":" + data.N)
},
error: function (r) { console.log(r.responseText); },
failure: function (r) { console.log(r.responseText); }
});
}
Web 服务 asmx 文件:
<%@ WebService Language="C#" Class="AutoSaveService" %>
[System.Web.Services.WebService(Namespace = "http://tempuri.org/")]
[System.Web.Services.WebServiceBinding(ConformsTo = System.Web.Services.WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class AutoSaveService : System.Web.Services.WebService
{
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]
public static string AutoSave(int ID, string Note)
{
var data = new { M = ID, N = Note };
System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();
return js.Serialize(data);
}
}
我正在使用表单身份验证(身份验证与 AD):
<authentication mode="Forms">
<forms loginUrl="login.aspx" name="adAuthCookie" timeout="120" path="/"/>
</authentication>
我以前从未在安全环境中进行过 ajax 调用,请告诉我您需要的其他信息。
我查看了类似问题的其他解决方案,但无法使它们起作用。
我想通了。
public static string AutoSave(int ID, string Note)
应该是:
public string AutoSave(int ID, string Note)
我有一个需要登录的内部网站,人们可以在会议期间记录笔记和其他信息。我正在尝试通过 AJAX 调用同一服务器上同一文件夹中的 Web 服务来 post 数据。我收到 401 未经授权的错误。
Javascript:
function saveNotes()
{
var json = "{ ID: 5, Note: 'Test Note'}";
$.ajax({
type: "POST",
url: "AutoSaveService.asmx/AutoSave",
data: json,
xhrFields: { withCredentials: true },
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
var data = JSON.parse(r.d);
console.log(data.M + ":" + data.N)
},
error: function (r) { console.log(r.responseText); },
failure: function (r) { console.log(r.responseText); }
});
}
Web 服务 asmx 文件:
<%@ WebService Language="C#" Class="AutoSaveService" %>
[System.Web.Services.WebService(Namespace = "http://tempuri.org/")]
[System.Web.Services.WebServiceBinding(ConformsTo = System.Web.Services.WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class AutoSaveService : System.Web.Services.WebService
{
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]
public static string AutoSave(int ID, string Note)
{
var data = new { M = ID, N = Note };
System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();
return js.Serialize(data);
}
}
我正在使用表单身份验证(身份验证与 AD):
<authentication mode="Forms">
<forms loginUrl="login.aspx" name="adAuthCookie" timeout="120" path="/"/>
</authentication>
我以前从未在安全环境中进行过 ajax 调用,请告诉我您需要的其他信息。
我查看了类似问题的其他解决方案,但无法使它们起作用。
我想通了。
public static string AutoSave(int ID, string Note)
应该是:
public string AutoSave(int ID, string Note)