2013-09-10 3 views
1

Я пытаюсь вызвать веб-службу из пользовательского элемента управления.Ошибка веб-службы, но не возвращает ошибку

Вот код веб-службы:

[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") Я получаю внутреннюю ошибку сервера. В противном случае ошибки нет, но я попытался отладить его, и он не попал в веб-службу.

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

, когда я смотрю на запросы в Fiddler я получаю 401 Несанкционированное с сообщением:

{ «Сообщение»: «Был ошибка при обработке запроса.», «StackTrace»: «», «ExceptionType»: «"}

+0

Вы можете указать код функции OnFail? –

+0

На данный момент он ничего не делает, но я поставил его в вопрос – Gesh

+0

В какой версии SharePoint вы используете 2010 или 2013? 2010 не имеет доступного свойства 'webAbsoluteUrl'. Попробуйте удалить '_spPageContextInfo.webAbsoluteUrl' и просто использовать URL-адрес относительного макета. –

ответ

0

Ошибка 401 означает, что ресурс URL требует аутентификации пользователя. И существует одно из двух условий.

  1. Аутентификация пользователя, которая не была предоставлена.
  2. Ошибка аутентификации пользователя.

Если вы не знаете, почему ваш HTTP-ресурс требует аутентификации, лучше всего связаться с администратором и открыть с ними диалог.

Смежные вопросы