从理论上讲,这应该是一个相当常见的用例。反向代理后的SSL服务器,负责.NET /TLS端接。
但出于某种神秘的原因,这对我来说行不通。我使用庞德反向代理。我在配置中有以下内容。
HeadRemove "X-Forwarded-Proto"
AddHeader "X-Forwarded-Proto: https"Chrome给了我一个“加载资源失败:服务器响应状态为403 (禁止: SignalR跨域被禁用。)”。
在web.config中,我在system.webServer中添加了以下内容
<httpProtocol>s
<customHeaders>
<add name="Access-Control-Allow-Origin" value="https://some.domain.fake" />
</customHeaders>
</httpProtocol>据我所知,我不应该需要CORS,因为我没有做任何跨域请求。请注意,如果我使用非SSL uri,则一切正常。
下面的错误似乎是相关的,但它们应该被修复,并且与我的问题并不完全相同。Bug with same origin check behind reverse proxies/load balancers etc. Bug with same origin check behind reverse proxies/load balancers for SSL requests.
我已经寻找了很长一段时间来寻找解决方案,但令我惊讶的是,有同样问题的人并不多。
问题是:我如何解决这个问题?
发布于 2014-03-07 06:36:43
如果您的反向代理正在设置Origin标头,服务器会将其解释为CORS请求。
您可能需要使用Microsoft.Owin.Cors NuGet package来允许来自反向代理在原始标头中设置的任何来源的CORS请求。
http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-javascript-client#crossdomain
https://stackoverflow.com/questions/22237130
复制相似问题