Fiquei horas tentando soluções diversas da internet e não consegui salvar um autor.
Desisti e fui dando ctrl+c no projeto todo. Até que percebi que no meu método POST estava com o body : "autor" (string) em vez de autor (variável):
CriaAutor: autor => {
return fetch("http://localhost:8000/api/autor", {
method: "POST",
headers: {
"content-type": "application/json"
},
body: "autor" <----- aqui
}).then(res => res.json());
},
A questão é, por que com string deu erro de cors e não outro erro? Bastou mudar para objeto que funcionou.