Request header field content-type is not allowed by Access-Control-Allow-Headers in preflight respon

一、问题:

跨域请求中包含自定义header字段时,浏览器console报错。

Request header field xfilesize is not allowed by Access-Control-Allow-Headers

1 想要实现前后分离,首先得跨域
2 怎么跨域,在后端中 servlet 或 filter 设置请求头,然后就出问题了
3 has been blocked by CORS policy: Request header field content-type is not allowed by Access-Control-Allow-Headers in preflight response
已被CORS策略阻止:响应请求头,不允许请求标头字段内容类型
4 问题就出在这,思考了很久,代码好像没错啊

response.setHeader("Access-Control-Allow-Origin");
response.setHeader("Access-Control-Allow-Credentials", "true");

5 百度了之后,原因:

包含自定义header字段的跨域请求,浏览器会先向服务器发送OPTIONS请求,探测该服务器是否允许自定义的跨域字段。
如果允许,则继续实际的POST/GET正常请求,否则,返回标题所示错误

6 说白了就是,要有自定义请求头和响应头完成跨域交互,浏览器要求的(浏览器版本新)

7 java 自定义请响应头,给浏览器一个响应,带这个请求头的放行

  // /* 允许跨域的请求头 */                                        // 这里 指定 自己起一个   
  response.setHeader("Access-Control-Allow-Headers", "Content-Type,Access-Control-Ajax-Headers");
  response.setHeader("Access-Control-Ajax-Headers", "cros");// 自定义的

8 前端请求头,和后端对应

{'Access-Control-Ajax-Headers': 'cors'}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值