如何在jQuery中处理403 ajax响应

如何在jQuery中处理403 ajax响应,jquery,ajax,error-handling,Jquery,Ajax,Error Handling,我需要帮助处理来自jquery的$.ajax请求中的服务器的403个错误。它将其作为JS错误发送,因为请求被禁止,但我只希望错误是Ajax响应的一部分,而不仅仅是导致整个应用程序失败的JS错误。403来自OAuth2。如果需要提供任何代码来更好地澄清我的问题,请让我知道 如何实现这一点?检查提供的URL是否正确 若403仍然作为响应接收,尝试使用try-catch块并相应地处理错误 try { //Run some code here } catch(err) { //Han

我需要帮助处理来自jquery的$.ajax请求中的服务器的403个错误。它将其作为JS错误发送,因为请求被禁止,但我只希望错误是Ajax响应的一部分,而不仅仅是导致整个应用程序失败的JS错误。403来自OAuth2。如果需要提供任何代码来更好地澄清我的问题,请让我知道


如何实现这一点?

检查提供的URL是否正确

若403仍然作为响应接收,尝试使用try-catch块并相应地处理错误

try
  {
  //Run some code here
  }
catch(err)
  {
  //Handle errors here
  }

解决方案:我发现处理每个ajax请求的这种情况的最佳方法是使用statusCode方法:

statusCode: {
   403: function() { 

   },
   200: function(data) {

   }
   //other codes. read the docs for more details
}

这适用于我的所有应用程序:

(function($){
    $(document).on('ajaxError', function(event, xhr) {
      if (xhr.status === 401 || xhr.status === 403) {
        window.location.reload();
      }
    });
})(jQuery);

提供的url是正确的,但如果有区别,请求是HTTPS。我正在使用jquery的$.ajax请求,它在源代码中说“不要使用try/catch.jquery自己处理它”(类似的东西)。我将设法找到其他的方法来解决这个问题。谢谢。如果服务器在响应中发送403,则服务器配置错误,因为根据403,服务器不应满足请求,这意味着它不应发送响应。我不同意@10basetom。医生说不要放弃回复。如果您不想透露资源的存在,则回答“应”为404,如果您想透露资源的存在,则回答“应”为403。不要将解决方案作为问题的一部分,请将其作为新答案添加。此外,您不应将标题编辑为“已解决”,相反,你应该只接受一个答案,而这正是人们需要一个问题有答案的所有指示。如果服务器配置正确,使用
statusCode
将不会帮助你处理403个错误(请参阅我下面的评论)。通过尝试$.getJSON()(它应该返回一个正确的403-拒绝访问)自己尝试一下。