Я создал .Net Core, AWS Lambda WebAPI.Локально тестируя, я столкнулся с проблемой CORS и добавил политику CORS, чтобы разрешить происхождение из моего домена.Это сработало.Приложение функционировало должным образом.
Мне нужна помощь в решении проблемы cors, возникшей после развертывания.После развертывания в AWS я получаю известную ошибку:
> Access to XMLHttpRequest at 'https://myLambdaEndpoint' from origin
> 'http://myWebsite' has been blocked by CORS policy: Response to
> preflight request doesn't pass access control check: No
> 'Access-Control-Allow-Origin' header is present on the requested
> resource.
Вот что я сделал:
Мой запрос с использованием Axios в React:
axios.post(`myEndpoint`, { FirstName, LastName, Email })
.then(res => {
if(res.errors && res.errors.length > 0) console.log(res.errors);
else
{
this.setState({loading: false, registered: true});
}
})
.catch(err => {alert(err); console.log(err)});
}
//Also tried
axios.post(`myEndpoint`, {headers: {'Access-Control-Allow-Origin': '*'}, FirstName, LastName, Email })
.then(res => {
if(res.errors && res.errors.length > 0) console.log(res.errors);
else
{
this.setState({loading: false, registered: true});
}
})
.catch(err => {alert(err); console.log(err)});
}
в Startup.cs -> Настройка служб
services.addCors()
// Also tried
services.AddCors(options =>
{
options.AddPolicy("AllowOrigin",
builder =>
{
builder.WithOrigins("http://myWebsite")
.AllowAnyHeader()
.WithMethods("POST");
});
});
в controller.cs
[EnableCors(origins: "http://myWebsite", headers: "*", methods: "post")]
моя политика s3 bucket cors для API, а также для веб-сайта
<CORSRule>
<AllowedOrigin>myWebsite</AllowedOrigin>
<AllowedMethod>POST</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
//Also tried
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>POST</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
Я также пытался добавить триггеры к лямбда-функции в aws.
Код состояния из предварительной проверки - 500. Также указано «Политика реферирования: no-referer-when-downgrade»Мне интересно, в этом ли проблема?
Заголовки ответа:
> Access-Control-Request-Headers: content-type
> Access-Control-Request-Method: POST
> Origin: http://myWebsite.com
> Referer: http://myWebsite.com/
Кто-нибудь знает, как это исправить?Я часами пробовал вещи и заканчивал поиски.