我有一个运行在ubuntu和nginx上的flask-socketio服务器。我有一个客户端在调用服务器。当我尝试调用服务器时,我收到以下错误:
has been blocked by CORS policy: The 'Access-Control-Allow-Origin' header contains multiple values '*, *, *, *, *, *, *, *, *, *, *, *, *, *, *, *, *', but only one is allowed.这是我用flask进行的初始化:
socketio = SocketIO(app, cors_allowed_origins='*', async_mode='eventlet')..。
if __name__ == '__main__':
socketio.run(app, host="0.0.0.0", port='80', debug=False)这是我在nginx中的当前配置:
server {
listen 80;
server_name server-address;
location / {
include proxy_params;
proxy_pass http://server-address;
include uwsgi_params;
uwsgi_pass unix:/home/user/project/project.sock;
}
location /socket.io{
include proxy_params;
add_header "Access-Control-Allow-Origin" "*" always;
proxy_http_version 1.1;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass http://server-address/socket.io;
}
}从客户端到服务器的请求如下所示:
http://server-address/socket.io/?EIO=3&transport=polling&t=1617406124248-38我试过了:
-Adding只允许CORS到location /和两者。-在flask应用中删除/添加允许CORS原点。
有人能帮上忙吗?
发布于 2021-07-25 06:04:39
请添加您的Nginx conf
proxy_hide_header Access-Control-Allow-Origin然后重新加载Nginx并尝试。
https://stackoverflow.com/questions/66926378
复制相似问题