【问题标题】:Missing header 'Authorization' 500 error even when Authorization present in request即使请求中存在授权,也缺少标头“授权”500 错误
【发布时间】:2015-05-11 01:33:30
【问题描述】:

我正在尝试向第三方网络服务发出 AJAX POST 请求。由于我要发布到外部资源,因此我使用的是 php 代理,因为我不拥有该服务并且无法让它们实现 CORS 或 JSONP。

该服务使用我尝试使用 beforesend set 请求标头和 ajaxsetup 方法在 AJAX 请求中设置的基本授权。

当我在 chrome 和 firefox 的网络选项卡中检查时,我可以看到请求中设置的授权标头。但服务器返回 500 错误,缺少授权异常。

感谢您的宝贵时间
干杯。

我已将回复粘贴在下面

Apache Tomcat/7.0.22 - 错误报告

HTTP 状态 500 -

类型异常报告

消息

描述服务器遇到了一个内部错误 () 导致它无法完成这个请求。

异常

org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常是 org.springframework.web.bind.annotation.support.HandlerMethodInvocationException: 无法调用处理程序方法 [public com.valuescentre.insight.api.model.BasicResponse com.valueescentre.insight.api.controller.PVAWebService.request(java .lang.String,java.lang.String,java.lang.String,com.valuescentre.insight.api.model.PVARequest,javax.servlet.http.HttpServletRequest) throws java.lang.Exception];嵌套异常是 java.lang.IllegalStateException: Missing header 'Authorization' of type [java.lang.String]
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:656)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

根本原因

org.springframework.web.bind.annotation.support.HandlerMethodInvocationException: 调用处理程序方法失败 [public com.valuescentre.insight.api.model.BasicResponse com.valueescentre.insight.api.controller.PVAWebService.request(java .lang.String,java.lang.String,java.lang.String,com.valuescentre.insight.api.model.PVARequest,javax.servlet.http.HttpServletRequest) throws java.lang.Exception];嵌套异常是 java.lang.IllegalStateException: Missing header 'Authorization' of type [java.lang.String]
    org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:181)
    org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
    org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

根本原因

java.lang.IllegalStateException:缺少类型 [java.lang.String] 的标头“授权”
    org.springframework.web.bind.annotation.support.HandlerMethodInvoker.raiseMissingHeaderException(HandlerMethodInvoker.java:784)
    org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveRequestHeader(HandlerMethodInvoker.java:554)
    org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments(HandlerMethodInvoker.java:343)
    org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:171)
    org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
    org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

【问题讨论】:

    标签: ajax header authorization


    【解决方案1】:

    我将原因指向我正在使用的 proxy.php 脚本。我似乎找不到合适的 php 代理脚本。 干杯

    【讨论】:

      猜你喜欢
      • 2014-12-16
      • 2018-07-17
      • 2017-12-19
      • 2020-11-12
      • 1970-01-01
      • 2017-11-23
      • 2012-10-27
      • 2011-05-04
      相关资源
      最近更新 更多