【问题标题】:Web service call fails but returns no errorWeb 服务调用失败但不返回错误
【发布时间】:2013-09-13 19:38:15
【问题描述】:

我正在尝试从用户控件调用 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 with message:

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

【问题讨论】:

  • 能否给出 OnFail 函数的代码?
  • 现在它什么也没做,但我把它放在了问题中
  • 您使用的是 2010 或 2013 的哪个版本的 SharePoint? 2010 没有可用的 webAbsoluteUrl 属性。尝试删除 _spPageContextInfo.webAbsoluteUrl 并仅使用相对布局 url。
  • 我正在使用 Sharepoint 2013

标签: javascript asp.net web-services sharepoint


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-26
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多