CXF跨域的两种方法

来源:互联网 发布:魔兽世界7.0多核优化 编辑:程序博客网 时间:2024/05/22 12:54

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>

0 0
原创粉丝点击