ajax post跨域请求解决

一、使用 response.addHeader(“Access-Control-Allow-Origin”, “*”); 解决

1、前端
ajax post跨域请求解决_第1张图片
这里写图片描述

2、后端:

ajax post跨域请求解决_第2张图片

二、使用CORS 解决
1、跨域问题属于后台的安全拦截,跟客户端没关系,在java后台,使用cors filter进行拦截处理,引用maven库cors-filter
ajax post跨域请求解决_第3张图片

2、修改web.xml,增加cors过滤器,在cors.supportedHeaders节点中,增加Access-Control-Allow-Origin,该处也可以改成*
ajax post跨域请求解决_第4张图片


    <filter>   
        <filter-name>CORSfilter-name>   
        <filter-class>com.thetransactioncompany.cors.CORSFilterfilter-class>   
        <init-param>      
            <param-name>cors.allowOriginparam-name>      
            <param-value>*param-value>   
        init-param>   
        <init-param>      
            <param-name>cors.supportedMethodsparam-name>      
            <param-value>GET, POST, HEAD, PUT, DELETEparam-value>   
        init-param>   
        <init-param>      
            <param-name>
cors.supportedHeadersparam-name>      
            <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified, Access-Control-Allow-Originparam-value>   
        init-param>   
        <init-param>      
            <param-name>cors.exposedHeadersparam-name>      
            <param-value>Set-Cookieparam-value>   
        init-param>   
        <init-param>      
            <param-name>cors.supportsCredentialsparam-name>      
            <param-value>trueparam-value>   
        init-param>
    filter>
    <filter-mapping>   
        <filter-name>CORSfilter-name>   
        <url-pattern>/*url-pattern>
    filter-mapping>

3、
cors.allowOrigin:可以通过的ip,代表所有,可以使用指定的ip,多个的话可以用逗号分隔,默认为
cors.supportedMethods:请求方式 默认为*
cors.supportedHeaders:请求支持的头信息,默认为*
cors.exposedHeaders:暴露的头信息,默认的empy list
cors.supportsCredentials:支持证书,默认为true
cors.maxAge: 最大过期时间,默认为-1
cors.tagRequests: 默认为false
cors.allowSubdomains:允许子域 默认为false
详细设置,可参考官网:http://software.dzhuvinov.com/cors-filter-configuration.html

4、服务端修改后,重启tomcat

你可能感兴趣的:(Java,jquery,+,js,+,ajax)