POST JSON fails with 415 Unsupported media type, Spring 3 mvc

后端 未结 14 1912
执念已碎
执念已碎 2020-11-22 09:46

I am trying to send a POST request to a servlet. Request is sent via jQuery in this way:

var productCategory = new Object();
productCategory.idProductCategor         


        
14条回答
  •  广开言路
    2020-11-22 10:35

    I had the same problem. I had to follow these steps to resolve the issue:

    1. Make sure you have the following dependencies:

        
            com.fasterxml.jackson.core
            jackson-core
            ${jackson-version} // 2.4.3
        
        
            com.fasterxml.jackson.core
            jackson-databind
            ${jackson-version} // 2.4.3
        
    

    2. Create the following filter:

        public class CORSFilter extends OncePerRequestFilter {
    
            @Override
            protected void doFilterInternal(HttpServletRequest request,
                                            HttpServletResponse response, FilterChain filterChain)
                    throws ServletException, IOException {
    
                String origin = request.getHeader("origin");
                origin = (origin == null || origin.equals("")) ? "null" : origin;
                response.addHeader("Access-Control-Allow-Origin", origin);
                response.addHeader("Access-Control-Allow-Methods", "POST, GET, PUT, UPDATE, DELETE, OPTIONS");
                response.addHeader("Access-Control-Allow-Credentials", "true");
                response.addHeader("Access-Control-Allow-Headers",
                        "Authorization, origin, content-type, accept, x-requested-with");
    
                filterChain.doFilter(request, response);
            }
        }
    

    3. Apply the above filter for the requests in web.xml

        
            corsFilter
            com.your.package.CORSFilter
        
        
            corsFilter
            /*
        
    

    I hope this is useful to somebody.

提交回复
热议问题