我在 EC2 实例中托管了一个网站,并使用以下命令访问该页面http://ec2...
网址。该页面向同一实例上托管的另一个 Web 应用程序发出 ajax 请求。如果我访问通过 ZScaler 代理的页面,我会得到XMLHttpRequest cannot load
chrome 上的异常。这是因为当通过代理时,原始 url 发生了变化。
我尝试添加标题Access-Control-Allow-Origin
并且还与JSONP
。但没有任何效果。
问候
阿伦达吉
我遇到了同样的问题,CORS 消息实际上误导了我。
设置
具有 nginx 的 amazon EC2 实例,为前端提供服务,并将 /api/ 上的 proxy_passing 请求发送到位于同一实例上的 IIS 服务器
问题
当用户单击该按钮时,AJAX 请求失败,因为出现以下错误消息:
获取 API 无法加载。重定向自 '' to '' 已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。起源 'http://myapi http://myapi' 因此不允许访问。如果不透明响应满足您的需求,请将请求模式设置为“no-cors”以在禁用 CORS 的情况下获取资源。
然而,一切都可以直接访问互联网(禁用 zscaler 代理)。
解决方案
我当时用的是fetch
方法发出 AJAX 请求,该方法默认忽略 cookie。
API 请求被重定向到位于另一个域的 zscaler 身份验证页面,并导致 CORS 错误消息。
传递选项credentials: 'same-origin'
to fetch
通话解决了问题。
更多细节here https://github.com/github/fetch#sending-cookies
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)