Partage
  • Partager sur Facebook
  • Partager sur Twitter

angular et api symfony

Sujet résolu
12 août 2018 à 3:44:31

Bonjour. je debute sous angular et j'ai un petit soucis. A chaque fois que je veux attaquer mon api backend qui est sous symfony 4, j'ai l'erreur ci-dessous. J'ai installé Nelmio  sur Symfony mais cela n'a pas résolu le problème

Voici mon controlleur angular:

import { Component } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {

 
  selectedFile:File=null;

  constructor(private http: HttpClient) { }

  OnFileSelected(event){
      this.selectedFile=<File>event.target.files[0];
  }
  upload(){
    const fd= new FormData();
    fd.append('image', this.selectedFile,this.selectedFile.name);
    this.http.post('http://localhost:8000/picture/new', fd).subscribe(res=> {
      console.log(res)
    });
  }
}

et voici le contolleur symfony:

 /**
     *  upload new picture.
     *  @Route("/picture/new", name="picture_new", methods={"POST"})
     *
     */
    public function postPictureAction(Request $request)
    {
        $picture = new Picture();
        //$uploadFile=$request->get('image');
        //$image=$uploadFile;
        //$fileName=md5(uniqid()).'.'.$image->guessExtension();
        //$image->move($this->getParameter('upload_directory'),$fileName);
        $picture->setName("essai");
        $em = $this->getDoctrine()->getManager();
        $em->persist($picture);
        $em->flush();
        return $this->json([
            'message' => 'OK',
            'path' => 'src/Controller/ArticleController.php',
        ]);
        
    }




  • Partager sur Facebook
  • Partager sur Twitter
La vérité se trouve dans le code
12 août 2018 à 10:36:22

Tu as sans doute angular et symfony sous 2 domaines différents.

Cette instruction permet à n'importe quelle origine d'avoir accès au ressource.

return new JsonResponse($data, 200, array('Access-Control-Allow-Origin'=> '*'));



  • Partager sur Facebook
  • Partager sur Twitter
12 août 2018 à 16:45:48

Meci bien à toi. cela marche à merveille
  • Partager sur Facebook
  • Partager sur Twitter
La vérité se trouve dans le code