解决 "Access-Control-Allow-Methods 列表中不存在请求方法 DELETE" 错误
IE浏览器中访问请求方法为 DELETE 的接口时,出现以下错误
而在Chrome和Firefox浏览器中却访问正常,根据错误日志,发现在发起 OPTIONS 预请求后就报错了。
查看 OPTIONS 预请求的 Access-Control-Allow-Methods 响应头值为通配符 * 。
结果查找资料,发现 Access-Control-Allow-Methods 通配符 * 在IE中不会被识别,具体兼容如下图。
解决方法
修改后端的跨域处理代码,将响应头 Access-Control-Allow-Methods 的值换成具体的请求方法。
(我这里的代码是 Java Spring,将 OPTIONS 请求的 Access-Control-Request-Method 请求头的值直接放到响应头 Access-Control-Allow-Methods 返回,效果与通配符 * 是一样的,其他语言和框架同理)