Django erro CORS ocorre para um endpoint da API, mas não para outro
Em alguns casos, ocorre um erro de CORS e há um redirect (301), os dados da requisição são perdidos. É um erro comum, e possui uma solução.
Esta é uma configuração do Django, e este comportamento é documentado e eu destaquei a parte importante. Segundo a documentação
APPEND_SLASH DEFAULT: true. Quando definido como True, se o URL da solicitação não corresponder a nenhum dos padrões no URLconf e não terminar com uma barra, um redirecionamento HTTP será emitido para o mesmo URL com uma barra anexada (é feito um append da barra, ao final da URL). Observe que o redirecionamento pode causar a perda de quaisquer dados enviados em uma solicitação POST.
Desta forma, para evitar este problema, basta adicionar a barra no final do endpoint em que está ocorrendo o redirect 301.
#Codigo que gera o redirect 301
let apiUrl = `${baseUrl}/api/search/offices/insurance`
----------------------------
#Correção
let apiUrl = `${baseUrl}/api/search/offices/insurance/`
^ adicionar esta barra no URI
Outra opção é desativar esta opção APPEND_SLASH
.
Para desativar a opção APPEND_SLASH
deve ser declarada no settings.py
setando o seu valor para False
. já que o default é True
em geral este atributo não está declarado no settings.py