Vous utilisez un navigateur obsolète, veuillez le mettre à jour.
Veuillez utiliser un navigateur internet moderne avec JavaScript activé pour naviguer sur OpenClassrooms.com
Une question ? Pas de panique, on va vous aider !
Ce sujet est fermé.
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', ]); }
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'=> '*'));