Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

CORS

No primeiro curso de react não é mencionado nada sobre CORS.

Não há problema de cross origin quando chamamos o backend em uma porta X a partir de nosso front end em uma porta Y?

O backend já está resolvendo isso ou realmente não é preciso configurar nada?

Obrigado.

4 respostas

Oi Bjornn, tudo bem? Na verdade, acho que nem deveria estar no curso de React, mas sim em qualquer curso de JavaScript.

Acredito que neste ponto o back-end já esteja cuidando disso.

Sim, sim. Só acho que ele deveria ter citado que o cors já estava ok no backend...

Eu até tentei achar o código fonte do backend no github dele mas não encontrei. Por isso resolvi perguntar.

solução!

É só usar o jd-gui para ver o código do backend

package br.com.caelum.cdcreact.controllers;

import br.com.caelum.cdcreact.controllers.forms.AutorForm;
import br.com.caelum.cdcreact.daos.AutorDao;
import br.com.caelum.cdcreact.models.Autor;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping({"/api/autores"})
@CrossOrigin
public class AutorController
{
  @Autowired
  private AutorDao autorDao;

  @RequestMapping(consumes={"application/json"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
  public Iterable<Autor> salva(@Valid @RequestBody AutorForm autorForm)
  {
    this.autorDao.save(autorForm.build());

    return lista();
  }

  @RequestMapping(method={org.springframework.web.bind.annotation.RequestMethod.GET}, produces={"application/json"})
  public Iterable<Autor> lista()
  {
    return this.autorDao.findAll();
  }
}

Aqui tá a parte do autor que ele já seta o @CrossOrigin

Wow, boa Bruno! Bjornn lembra de marcar o post que solucionou sua dúvida como solução do tópico, tá bem?