首页 > 解决方案 > Symfony api,删除请求不适用于角度客户端

问题描述

我正在开发一个 symfony API 和一个角度客户端,我想做一个 http 删除请求。我已经完成了 get 方法,它们工作正常。但是,当我从我的角度网页调用它时,我无法弄清楚为什么删除不起作用(它与邮递员一起工作得很好,证明)。

这是我的 symfony 方法:

/**
 * @Route("/API/cours/{id}/delete", name="delete_cours",methods={"DELETE"})
 */
public function deleteCours($id,CoursRepository $repo,  EntityManagerInterface $manager){
    $exists = 'no';
    if($cours = $repo->find($id)) {
        $existe = 'yes';
        $manager->remove($cours);
        $manager->flush();
    }
    $response = new Response('{ "id" : '. $id .' '. $existe.'  }');
    $response->headers->set('Content-Type', 'application/json');
    $response->headers->set('Access-Control-Allow-Origin', '*');
    return $response;
}

在角度,我创建了一个服务,删除功能是这样的:

deleteUnCours(id){
    return this.http.delete('https://127.0.0.1:8000/API/cours/' + id + '/delete');   }

我的组件代码如下所示:

supprimer() {
    this.coursService.deleteUnCours(this.lecours.id).subscribe(data => {
      console.log('deleted');
    });
  }

在控制台中我收到错误

CORS 标头:缺少“Access-Control-Allow-Origin”

但是,如果我用“get”替换所有“delete”,它是否可以正常工作而没有错误?

标签: angularsymfony

解决方案


推荐阅读