三个应用的CORS不一致

时间:2019-03-09 02:54:47

标签: node.js angularjs cors

我有一个分析服务器(matomo),它可以很好地跟踪主要的“实时”网站。反过来,我还有另一个Web应用程序“门户”,可以成功对分析服务器进行http调用。 现在,我正在尝试将相同的呼叫改造为另一个现有站点。该站点是创建内容的位置,该内容显示在实时站点上。 最后一个站点是一个巨大的nodejs + angularjs站点,位于另一个供应商的另一个数据中心中。它成功调用了具有不同子域的REST API层。 但是,调用前述分析将触发大型应用程序中的CORS错误。 FireFox给出以下错误:“(原因:CORS预检频道中CORS标头“ Access-Control-Allow-Headers”中缺少令牌“授权”)” 我不明白为什么它在门户网站上有效,但在内容创建者上无效。 一切都在CloudFlare背后,而Cloudflare则将所有人都强制为https调用。 每个应用程序使用相同域的子域。内容创建者已成功调用api.mydomain.com。门户成功调用了analytics.mydomain.com和api.mydomain.com。 分析网站正在使用php / apache。该门户网站使用的是php / angularjs。内容提供者正在使用nodejs / angularjs。 实时站点正在使用nodejs / angular2.x。 任何见识将不胜感激。

1 个答案:

答案 0 :(得分:0)

结果是未返回某些标头。显然,其他程序并不在乎,但第三个程序不在乎,即使没有执行POST。我将以下信息添加到apache2 conf文件中:

页眉始终将Access-Control-Max-Age设置为“ 1000” 标头始终设置访问控制允许标头“ X请求的内容,内容类型,原始,授权,接受,客户端安全令牌,接受编码” 标头始终将访问控制允许方法设置为“ POST,GET,OPTIONS,DELETE,PUT”