我创建了一个具有两个起源(s3 bucket和aws apigateway)的cloudfront发行版。 s3存储桶成功为Elm spa服务,但是当我尝试通过SPA向我的api网关发送发布请求时,我收到403。这是我的elm发布请求:
testReq : Cmd Msg
testReq =
request
{ method = "POST"
, headers = []
, url = "https://xxxxxxxxxx.cloudfront.net/api/testy/gettalent"
, body = jsonBody testBody
, expect = Http.expectWhatever Resp
, timeout = Nothing
, tracker = Nothing
}
[通常,HTTP 403表示拒绝访问,对于您而言,我认为您的网站域和API域是不同的。因此,由于“跨域请求被阻止”错误,此访问可能被拒绝。
如果是这种情况,则应在API资源方法上启用CORS
。
参考:https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html
我解决了它:pastebin.com/8AujUXZg基本上,我自己在cloudfront中设置了一个简单的API网关,具体步骤如下:advancedweb.hu/how-to-use-api-gateway-with-cloudfront您必须注意path_pattern是什么指定为Cloud Front会自动为您构造网址