AWS CloudFront for Parse Server需要将哪些标题列入白名单
问题描述:
我正在运行AWS CloudFront后面的分析服务器,我仍在试图弄清楚最佳配置是什么。目前,我已经配置了CloudFront的行为:AWS CloudFront for Parse Server需要将哪些标题列入白名单
- 允许的HTTP方法:GET,HEAD,OPTIONS,PUT,POST,PATCH,DELETE
- 缓存HTTP方法:GET,HEAD(默认缓存)
- 正向头:白名单
- 接受语言
- 内容类型
- 主机
- Origi ñ
- Referer的
- 对象缓存:自定义:
- 最小TTL:0
- 最大TTL:31536000
- 缺省TTL:28800块
- 正向饼干:所有
我的GET请求(使用解析REST API)似乎像预期的那样使用此配置进行缓存。正在使用解析JS SDK的所有请求似乎通过POST被调用,并在浏览器控制台产生一个504错误:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
对于一些原因,这些请求仍然由解析服务器fullfilled因为如保存对象仍将它们存储到我的MongoDB中,即使存在此访问控制原始错误。
答
此问题的解决方案不是通过云端,而是来自Parse Server端。
在这个文件/src/middlewares.js
添加下面的代码和云将不会彻底的例外。
var allowCrossDomain = function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
res.header('Access-Control-Allow-Headers', 'X-Parse-Master-Key, X-Parse-REST-API-Key, X-Parse-Javascript-Key, X-Parse-Application-Id, X-Parse-Client-Version, X-Parse-Session-Token, X-Requested-With, X-Parse-Revocable-Session, Content-Type');
问题是/是CLoudFront默认超时30秒。由于我的数据库(和生产服务器)位于东京,因此来自德国测试服务器的请求运行超过30秒,导致CloudFront返回504错误。所以我现在的解决方案是完全删除CloudFront,因为我无法修改AWS上的默认30秒。 – flavordaaave