5

我试图通过使用 CORS 过滤器http://software.dzhuvinov.com/cors-filter-installation.html来解决 Access-Control-Allow-Origin 的问题。我按照说明进行操作,它只能 GET 不能 POST。我在 Tomcat 服务器上有 Java servlet,我通过我的 Web 应用程序调用这个 servlet,代码在这里:

        var url = "http://server_url:8080/"
            + "gtpapi/testPlan/guid_" + planId + "/packages/" + packId + "/results";
        $.ajax({
            contentType : 'application/json',
            type : "POST",
            crossDomain: true,
            url : url,
            data : JSON.stringify(postData),
            async : false,
            dataType : 'json',
            error : function(XMLHttpRequest) {
                throw XMLHttpRequest.statusText;
            }
        });

这是我的 web 服务器的 web.xml。

<filter>
    <!-- The CORS filter with parameters -->
    <filter-name>CORS</filter-name>
    <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>

    <init-param>
        <param-name>cors.allowOrigin</param-name>
        <param-value>*</param-value>
    </init-param>
     <init-param>
        <param-name>cors.supportedMethods</param-name>
        <param-value>GET, HEAD, POST, OPTIONS</param-value>
   </init-param>
   <init-param>
        <param-name>cors.supportedHeaders</param-name>
        <param-value>Origin, Content-Type, X-Requested-With, Access-Control-Allow-Origin</param-value>
   </init-param>
    <init-param>
        <param-name>cors.supportsCredentials</param-name>
        <param-value>false</param-value>
   </init-param>
</filter>

<filter-mapping>
    <!-- CORS Filter mapping -->
    <filter-name>CORS</filter-name>
    <url-pattern>/gtpapi/*</url-pattern>
</filter-mapping>

我整天尝试了很多方法,但到目前为止没有任何效果。我还尝试了“Access-Control-Allow-Origin”、“*”到标题或创建 CORSFilter 类作为此链接http://padcom13.blogspot.fr/2011/09/cors-filter-for-java-applications。 .html _ 但这对我根本不起作用。有任何想法吗?

4

0 回答 0