1

我正在尝试从用户控件调用 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: falsedataType: "json"),我会收到内部服务器错误。否则没有错误但我尝试调试它并没有进入Web服务。

function OnFail() {
        alert("Failed");
    }

当我查看 Fiddler 中的请求时,我收到一条 401 Unauthorized 消息:

{"Message":"处理请求时出错。","StackTrace":"","ExceptionType":""}

4

1 回答 1

0

401 错误意味着 URL 资源需要用户身份验证。并且存在两个条件之一。

  1. 尚未提供的用户身份验证。
  2. 用户身份验证失败。

如果您不知道为什么您的 HTTP 资源需要身份验证,最好的办法是联系管理员并与他们进行对话。

于 2013-09-10T08:22:10.480 回答