我有一個Lambda部署在AWS內的API網關後面,並啓用了API緩存。使用API網關提供不正確的CORS響應的Lambda
已經使用標準啓用CORS選項,這已在OPTIONS方法創建的報頭映射Access-Control-Allow-Origin: *
配置。
但是,當調用API來執行Lambda上的方法時,響應中的Access-Control-Allow-Origin
標頭將被設置爲請求中的origin
標頭。
這是由於我選擇了啓用API緩存導致了一個問題。
看起來這是導致響應被緩存與域特定的Access-Control-Allow-Origin
響應。即不是Access-Control-Allow-Origin: *
,而是Access-Control-Allow-Origin: {whatever the origin header of the request was
這導致客戶端的CORS故障。
我找不到有關此行爲的任何文檔以及爲何發生這種情況?
如果您可以導致'Origin'的'Vary'響應頭也被添加到響應中,那麼當'Origin'請求頭的值不同於請求的'Origin'值時,它被高速緩存from,這應該具有導致緩存被跳過的效果,並且會產生新的網絡請求。 請參閱[HTTP規範的相關部分](https://tools.ietf.org/html/rfc7231#section-7.1.4)和[關於'Vary'的MDN文章](https:// developer。 mozilla.org/en-US/docs/Web/HTTP/Headers/Vary)。 – sideshowbarker
當Lambda與API網關一起使用時,我不認爲這是可能的@sideshowbarker。在AWS中設置響應標頭的功能已被刪除。 –