在REST请求后在控制台中抑制500个错误

时间:2017-09-20 13:29:04

标签: javascript rest sharepoint-online

我通过Javascript进行多次REST调用,以确定用户是否在多个Sharepoint组中。

如果用户不在群组中,则REST请求会返回状态500,并会显示"user cannot be found"消息。

当返回错误时,我用"false"解决了我的承诺,所以我的功能正常。 但是 - 500的每个REST响应都会在Javascript控制台中放置error条目 - 是否可以取消这些条目?

我知道他们不会影响这个功能,但它会使控制台变得混乱。

function IsUserInGroupNumber(permissionRequested,userEmail,groupNumber){
var deferred=$.Deferred();    
var url=L_Menu_BaseUrl+"/_api/web/sitegroups("+groupNumber+")/Users/getByEmail('"+userEmail+"')/Email";
$.ajax({
    type: 'GET',
    url: url,
    beforeSend: function (XMLHttpRequest) {                     
        XMLHttpRequest.setRequestHeader("Accept", "application/json; odata=verbose");
    },                
    processData: false,
    success: function (data) 
    {            
        deferred.resolve({requestedPermission:permissionRequested,groupNumber:groupNumber,hasPermission:true});
    },
    error: function(data){         
        //user not found in the group returns a 500 error - but return value of 'false'
        deferred.resolve({requestedPermission:permissionRequested,groupNumber:groupNumber,hasPermission:false});
    }
});    
return deferred.promise();
}

1 个答案:

答案 0 :(得分:0)

该服务不应以500状态代码响应。这意味着服务器上的某些内容失败了。您无法控制JavaScript控制台/浏览器如何解释和解决错误或状态。

此外,从jQuery 1.5开始,$.ajax已经返回一个承诺:http://api.jquery.com/jquery.ajax/

您可以通过以下方式简化代码:

function IsUserInGroupNumber(permissionRequested, userEmail, groupNumber){
  return new Promise(resolve, reject) {
    $.ajax({
      type: 'GET',
      url: L_Menu_BaseUrl + "/_api/web/sitegroups(" + groupNumber + ")/Users/getByEmail('" + email + "')/Email",
      beforeSend: function (xhr) {                     
          xhr.setRequestHeader("Accept", "application/json; odata=verbose");
      },                
      processData: false,
    })
    .done(function() {
      resolve(true)
    })
    .fail(function() {
      resolve(false)
    })
  }