【发布时间】: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