手动进行CORS

我试图调试我的网络应用程序,我有一个POST请求。 (使用ajax,带有xhrFields:{withCredentials:true})。 dataType是'application / json',我的服务器是tomcat,我手动将“Access-Control-Allow-Origin”头设置为“http:// localhost:8080”。

其他头文件:response.addHeader(“Access-Control-Allow-Credentials”,“true”); response.addHeader(“Access-Control-Allow-Headers”,“x-request-verification-token”);

无法让这个工作。 这是我得到的错误:

跨源请求被阻止:同源策略不允许读取http:// localhost:8080 / MysServlet处的远程资源。 (原因:CORS头'Access-Control-Allow-Origin'不匹配'http:// localhost:8080')。

谢谢!


如果你想要一个适用于所有请求的配置,请在web.xml添加以下过滤器:

<filter>
    <filter-name>originfilter</filter-name>
    <filter-class>it.damore.web.ApiOriginFilter</filter-class>
</filter>

<filter-mapping> 
    <filter-name>originfilter</filter-name>
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

这是ApiOriginFilter类:

 public class ApiOriginFilter implements javax.servlet.Filter {
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        HttpServletResponse res = (HttpServletResponse) response;
        res.addHeader("Access-Control-Allow-Origin", "*");
        res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");
        res.addHeader("Access-Control-Allow-Headers", "Content-Type");
        chain.doFilter(request, response);
    }

    public void destroy() {
    }

    public void init(FilterConfig filterConfig) throws ServletException {
    }
}
链接地址: http://www.djcxy.com/p/77393.html

上一篇: Doing CORS manually

下一篇: 401 response for CORS request in IIS with Windows Auth enabled