我正在尝试从用户控件调用Web服务。
以下是网络服务的代码:
[System.Web.Script.Services.ScriptService]
public class WizardService:System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetNumber()
{
return "000000000000";
}
}
这是javascript:
$('#' + '<%= btnMoveNext.ClientID %>').click(function () {
var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_layouts/15/Project/Services/WizardService.asmx";
$.ajax({
type: "POST",
data: "{}",
url: requestUri + "/GetNumber",
contentType: "application/json",
success: OnSuccess,
error: OnFail
});
})
当此代码执行时,它总是进入函数OnFail。没有显示错误。
如果这有帮助:
如果我在调用服务时尝试更具体(如果我添加 - async: false
或dataType: "json"
),则会出现内部服务器错误。否则没有错误,但我尝试调试它并没有进入Web服务。
function OnFail() {
alert("Failed");
}
当我查看Fiddler中的请求时,我收到了一条401 Unauthorized的消息:
{“消息”:“处理请求时出错。”,“StackTrace”:“”,“ExceptionType”:“”}
答案 0 :(得分:0)
401错误表示URL资源需要用户身份验证。存在两种情况之一。
如果您不知道为什么您的HTTP资源需要身份验证,最好的办法是联系管理员并与他们打开对话。