2016-07-25 43 views
2

我正在运行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中,即使存在此访问控制原始错误。

+0

问题是/是CLoudFront默认超时30秒。由于我的数据库(和生产服务器)位于东京,因此来自德国测试服务器的请求运行超过30秒,导致CloudFront返回504错误。所以我现在的解决方案是完全删除CloudFront,因为我无法修改AWS上的默认30秒。 – flavordaaave

回答

0

此问题的解决方案不是通过云端,而是来自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');