【发布时间】:2014-08-23 15:01:01
【问题描述】:
这是交易,任何帮助将不胜感激,因为到目前为止我不知所措。
我在我的 jQuery.ajax 中设置自定义标题,如下所示:
$.ajax({
type:'GET',
url: url,
dataType: 'json',
headers: {
'customHeader': 'value',
}, etc...
我正在使用带有自定义过滤器的 spring mvc 和 spring security 并获取如下标题:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
ServletException {
HttpServletResponse httpResponse = (HttpServletResponse) response;
HttpServletRequest httpRequest = (HttpServletRequest) request;
httpResponse.setHeader("Access-Control-Allow-Origin", "*");
String header = httpRequest.getHeader('customHeader');
不幸的是,标头始终为空,我尝试过在 ajax 调用中使用 beforeSend 之类的方法,效果仍然相同。任何人都可以请她对此有所了解吗?
Remote Address:127.0.0.1:8080
Request URL:http://localhost:8080/ecom/ws/session
Request Method:OPTIONS
Status Code:401 Unauthorized
Request Headersview parsed
OPTIONS /ecom/ws/session HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Access-Control-Request-Method: GET
Origin: null
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36
Access-Control-Request-Headers: accept, ecom_string_s3c, ecom_client_uuid, content-type
Accept: */*
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,es;q=0.6
Response Headersview parsed
HTTP/1.1 401 Unauthorized
Date: Wed, 02 Jul 2014 18:15:03 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: ecom_string_s3c, ecom_client_uuid, content-type
Content-Length: 0
Server: Jetty(6.1.26)
【问题讨论】:
-
为什么不在 ajax 调用中使用
data而不是标头......不要重新发明轮子 :) -
我基本上是在推出自己的 rest 身份验证实现,我需要将身份验证信息存储在标头中,并与 post 数据分开。
-
我看了好几次答案很模糊
-
基本上我需要知道如何从 httpServletRequest 访问我的 java 过滤器中的标头
标签: jquery ajax spring-mvc spring-security