Hi,
Tomcat brings a special filter that implements the CORS specification. In this filter, the default list of allowed headers is the following: Origin Accept X-Requested-With Content-Type Access-Control-Request-Method Access-Control-Request-Headers I know that I can replace that list by using the filter parameter "cors.allowed.headers" and specify my own list of headers. I know that. But I have the following questions: - When this filter was created, why was the list filled with this -abritrarily- short list of headers? Why these headers and not others? Why, for example, isn't the "cache-control" header in the list? How was this list chosen? - If I want to define a more complete list, which headers should I include? There are some many headers to think about! - Can I use a "*" instead of specifying a list? Is that something that the CORS specs allows? - I know that the CORS specs defined this kind of list, but. Why is that necessary? Why can't we just accept any header in the pre-flight OPTIONS step, instead of returning a 403 (Forbiden) if at least one of the headers requested by the client is not in the list of allowed headers? - Why isn't there an option in the filter to do something like this: response.setHeader("Access-Control-Allow-Headers", request.getHeader("Access-Control-Request-Headers") ? I'm puzzled. One of the users of my API sent the "cache-control" header in the in the "Access-Control-Request-Headers" list during the pre-flight step, and received an HTTP 403 error status. I can add this header to the list (using the "cors.allowed.headers" filter parameter). But what about next time some client sends another header that is not in the list? Brian