response设置跨域请求头 无效

后端设置了 response.setHeader("Access-Control-Allow-Origin", "*"); 前端ajax还是访问不了,

ajax访问的是post请求 contentType/json

图片说明

是在9090那个网址设置,你搞对了没有。如果包含了自定义响应头,还得设置Access-Control-Allow-Headers

具体看这个:ajax跨域请求附带自定义请求头问题总结

自己看ajax请求的地址实际返回了跨域头了没有。

检查一下8080端口是否被占用,或者直接设置为其他端口,更改一下HEADER头的json设置,改为跟ACCESS-CONTROL-ALLOW-HEADERS相对应

ajax跨域请求附带自定义请求头问题总结

response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Allow-Credentials","true");

后端设置这三句就可以了

后端重新发布下 ,前端代码怎么写的

首先 跨域分为 跨不同的域名 和跨 不同的ip地址 端口。
如果是 不同的域名 事需要 用jsonp实现的

首先看端口是否被占用了 然后看域名是否相同

Access-Control-Allow-Origin 为允许哪些Origin发起跨域请求. 这里设置为”*”表示允许所有,通常设置为所有并不安全,最好指定一下。
Access-Control-Allow-Methods 为允许请求的方法.
Access-Control-Max-Age 表明在多少秒内,不需要再发送预检验请求,可以缓存该结果
Access-Control-Allow-Headers 表明它允许跨域请求包含content-type头,这里设置的x-requested-with ,表示ajax请求

谢谢大家的回复,我找到问题了,大家说的都对,但是是位置的问题,刚才我看了一下前面的filter有个全过滤那个东西过不了,

然后我自己写了个filter放web.xml最上面,把response.addHeader("Access-Control-Allow-Origin", "*");加上OK的

后端加允许跨域的代码就可以了

        if(request.getHeader("Origin")!= null)
            response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
        else
            response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Request-Headers", "*");
        response.setHeader("Access-Control-Allow-Credentials", "true");
        response.setHeader("Access-Control-Allow-Methods", "POST,GET,TRACE,OPTIONS,DELETE,PUT,HEAD");
        response.setHeader("Access-Control-Allow-Headers", "Content-Type,Origin,Accept,Authorization,X-Requested-With,No-Cache,If-Modified-Since,Pragma,Last-Modified,Cache-Control,Expires,X-E4M-With");
        response.setHeader("Access-Control-Max-Age", "3600");
        if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
            response.setHeader("Content-Type", "application/json;charset=utf-8");
            //这里需要按实际加入代码返回空或者http状态200
            return;
        }

ajax跨域请求不好搞吧,还得源服务器配置,用PHP之类的

检查一下header头是否正确