天天看點

CXF跨域的兩種方法

web.xml

方案1

<filter>

        <filter-name>CORS</filter-name>

        <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>

        <init-param>

            <param-name>cors.allowGenericHttpRequests</param-name>

            <param-value>true</param-value>

        </init-param>

        <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, PUT, DELETE</param-value>

        </init-param>

        <init-param>

            <param-name>cors.supportedHeaders</param-name>

            <param-value>Content-Type, X-Requested-With, Accept, Authentication,

                Last-Modified

            </param-value>

        </init-param>

        <init-param>

            <param-name>cors.exposedHeaders</param-name>

            <param-value>X-Test-1, X-Test-2</param-value>

        </init-param>

        <init-param>

            <param-name>cors.supportsCredentials</param-name>

            <param-value>true</param-value>

        </init-param>

        <init-param>

            <param-name>cors.maxAge</param-name>

            <param-value>3600</param-value>

        </init-param>

    </filter>

    <filter-mapping>

        <filter-name>CORS</filter-name>

        <url-pattern>*.action</url-pattern>

        <url-pattern>/rest/*</url-pattern>

    </filter-mapping>

方案2 紅色部分代碼

<servlet>

        <display-name>CXFNonSpringJaxrsServlet</display-name>

        <servlet-name>CXFNonSpringJaxrsServlet</servlet-name>

        <servlet-class>org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet</servlet-class>

        <init-param>

            <param-name>jaxrs.serviceClasses</param-name>

            <param-value>yourRestBean

            </param-value>

        </init-param>

        <init-param>

            <param-name>jaxrs.providers</param-name>

                <param-value>

                org.apache.cxf.jaxrs.provider.json.JSONProvider,

                org.apache.cxf.rs.security.cors.CrossOriginResourceSharingFilter

                </param-value>

        </init-param>

        <init-param>

            <param-name>jaxrs.address</param-name>

            <param-value>/resources</param-value>

        </init-param>

        <init-param>

            <param-name>jaxrs.features</param-name>

            <param-value>org.apache.cxf.jaxrs.swagger.Swagger2Feature(basePath=/myProject/rest/resources)</param-value>

        </init-param>

    </servlet>

    <servlet-mapping>

        <servlet-name>CXFNonSpringJaxrsServlet</servlet-name>

        <url-pattern>/rest/*</url-pattern>

    </servlet-mapping>

Extjs 測試代碼

<script>

    Ext.define('User', {

    extend: 'Ext.data.Model',

    fields: ['id', 'name', 'email']

});

var s1 = Ext.create('Ext.data.Store', {

    model: 'User',

    proxy: {

    type : 'rest',

        url : 'http://127.0.0.1:8080/myProject/rest/resources/my'

    }

});

s1.load();

console.info(s1);

</script>

繼續閱讀