Request header field access-token is not allowed by Access-Control-Allow-Headers in preflight res...

google查了一下,这个错误的根本原因是因为OPTIONS请求的CORS预检不成功导致。

当您开始使用自定义请求标头时,您将获得CORS预检。这是一个使用·HTTP OPTIONS·方式并包含多个属性的请求,其中一个标题是列出客户端要包含在请求中的CORS头的Access-Control-Request-Headers

您需要使用适当的CORS头回复该CORS预检,才能使其正常工作。其中一个是Access-Control-Allow-Headers。该属性需要包含Access-Control-Request-Headers属性包含的相同值(或更多)。

请求1.png
请求2.png

解决方法:在express的拦截器添加

      res.header("Access-Control-Allow-Origin", "*");
      res.header("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS");
      res.header("Access-Control-Allow-Headers", "Content-Type,access-token");  // 修改了这段
      res.header("Access-Control-Allow-Credentials", "true");

你可能感兴趣的:(Request header field access-token is not allowed by Access-Control-Allow-Headers in preflight res...)