2016-07-25 42 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');