Prerequisites
- What is your product version? v10.2.0
- we are using .net core framework with Angular
we are using the ASP .Net Zero hosted on Docker Container on Nginx we managed the cors policy and the site works just fine ,However the chat feature and signalR didnot work at all with the following error:
Access to fetch at 'https://xxxxxxxxxxxxx/signalr-chat/negotiate?enc_auth_token=xxxxxxxxxxxxx&negotiateVersion=1' from origin 'https://xxxxxxxxxxxxx' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The value of the 'Access-Control-Allow-Credentials' header in the response is '' which must be 'true' when the request's credentials mode is 'include'.
we tried to use the wild card , in the cors policy like "*.xxxxxxxx.com" and the full URL but all of them didnot work
nginx.config server { server_name frontendApp.xxxx ; include /etc/nginx/conf.d/config/config.conf; location / { proxy_pass http://API.xxxxxxxxxx; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; proxy_cache_bypass $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Upgrade $http_upgrade; proxy_cache_bypass $http_upgrade; proxy_pass_request_headers on; } location /signalr { proxy_pass http://API.xxxxxxxxxx; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } location /signalr-chat { proxy_pass http://API.xxxxxxxxx; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } include /etc/nginx/conf.d/ssl/ibtik.net-ssl.conf; add_header 'Access-Control-Allow-Origin' 'https://UI.xxxxxx' always; add_header 'Access-Control-Allow-Headers' ''; add_header 'Access-Control-Allow-Methods' ''; }
2 Answer(s)
-
0
Same issue , found any help?
-
0
Put this in your main nginx.conf file under the http section:
map $http\_connection $connection\_upgrade { "\~\*Upgrade" $http\_connection; default keep-alive; }
Then, in your site conf file use this for your hub location(s):
location /signalr-chat { proxy_pass http://x.x.x.x:port; # Configuration for WebSockets.$http_upgrade, $connection_upgrade is mapped in main server conf file. proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_cache off; # Configuration for ServerSentEvents proxy_buffering off; # Configuration for LongPolling or if your KeepAliveInterval is longer than 60 seconds proxy_read_timeout 100s; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Accept-Language $http_accept_language; # Optional } location /signalr { proxy_pass http://x.x.x.x:port; # Configuration for WebSockets.$http_upgrade, $connection_upgrade is mapped in main server conf file. proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_cache off; # Configuration for ServerSentEvents proxy_buffering off; # Configuration for LongPolling or if your KeepAliveInterval is longer than 60 seconds proxy_read_timeout 100s; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Accept-Language $http_accept_language; # Optional }
The CORS error message can be a bit of a red herring if the proxy config is not quite right. Note that this is direct from Microsoft's config site on Nginx -> https://docs.microsoft.com/en-us/aspnet/core/signalr/scale?view=aspnetcore-5.0
Cheers.