系统架构大致如下(至少与当前问题相关的组件):使用Nginx作为网络服务器托管的JavaScript GUI作为客户端(webapp),由所述Nginx实例代理的基于Django的后端以及两者托管在同一台计算机上。我正在使用VPN来访问它们都使用的网络。
问题是,当通过其IP(https://10.11.12.113/#!/)寻址主机时,它们都像一种魅力。当使用计算机名(https://computer-name/#!/)而不是IP时,我无法通过登录屏幕,并且浏览器控制台列出缺少CORS标头的原因。
在检查收到的任何响应时使用IP的后端,它们具有必需的标头,最重要的是Access-Control-Allow-Origin: '*'
(用于调试目的的星号)。理论上,这些标头两次添加到请求中:通过django-cors-headers作为中间件,由Nginx通过在nginx.config文件中找到的全局指令。 IP和服务器名称正确关联,可以通过在ping
命令输出中提及计算机名称的计算机ping IP来验证该IP。顺便说一下,主机操作系统是Windows Server 2012 R2。
那么,这种奇怪行为的原因可能是什么?
注意:我是一个笨拙的网络新角,所以即使是“愚蠢”解释可能是有效的。