has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin'
时间: 2023-10-14 21:30:21 浏览: 101
这个错误是因为在浏览器执行跨域请求时,服务器没有设置正确的 CORS 头部信息,导致请求被拒绝。在服务器端设置正确的 CORS 头部信息即可解决此问题。具体可以参考以下步骤:
1. 在服务器端设置响应头部信息:
```
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token
```
其中,`Access-Control-Allow-Origin` 表示允许跨域请求的源,可以设置为 `*` 表示允许所有源,也可以设置为具体的域名。
2. 如果使用的是 Apache 或者 Nginx 等 Web 服务器,可以在配置文件中添加以下代码:
Apache:
```
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
Header set Access-Control-Allow-Headers "Origin, Content-Type, X-Auth-Token"
```
Nginx:
```
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, X-Auth-Token';
```
注意:以上代码需要根据实际情况进行修改。
3. 如果使用的是 Node.js 等后端框架,可以使用中间件来设置 CORS 头部信息。例如在 Express 中可以使用 `cors` 中间件:
```
const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors());
```
以上就是解决 CORS 错误的方法,希望对你有所帮助。
阅读全文