我正在使用以下配置来允许来自所有来源的CORS请求:
server {
listen 80;
server_name example.com www.example.com;
location / {
include uwsgi_params;
uwsgi_pass unix:/home/myself/myproject/myproject.sock;
# CORS headers
add_header'Access-Control-Allow-Origin' *;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
# Logs
error_log /var/log/nginx/example.dev.error.log;
access_log /var/log/nginx/example.dev.access.log;
}
}
该项目是使用Django编写的REST API 我正在使用test-cors.org进行测试,我在Chrome网络中收到了奇怪的结果:
Access-Control-Allow-Credentials:true
Access-Control-Allow-Credentials:true
Access-Control-Allow-Methods:GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Origin:http://www.test-cors.org
Access-Control-Allow-Origin:*
响应状态为200 OK,但响应正文为空。
响应标头之一是X-Frame-Options:SAMEORIGIN
。这不是存在于同源请求中吗?
如果我以高频率发送请求(例如每秒5-6个请求),则所有响应的状态均为200 OK,但只有某些包含响应正文中的完整预期数据。
请帮助我理解为什么会发生这些以及如何解决。谢谢