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>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章