首页 > 解决方案 > 错误错误:未捕获(承诺):HttpErrorResponse:{“headers”:{“normalizedNames”:{},“lazyUpdate”:null},“status”:500

问题描述

我被这个错误困住了好几个小时......我是一个初学者,我正在开发一个网络应用程序,前面有 angular,后面有 symfony5。我正在尝试向 symfony 服务器发送 POST 请求并在 Angular 应用程序上接收响应,这就是方式...

我如何从 angular 发送

submit()
  {
    let toSend = {
      id:this.id,
      name:this.name,
      birthday:"2020-06-03",
      age:this.age,
      profession:this.profession,
      adress:this.adress,
      telephone:this.telephone,
      maritalStatus:this.maritalStatus,
      education:this.education,
      spouseName:this.spouseName,
      spouseProfession:this.spouseProfession,
      spouseEducation:this.spouseEducation,
      nationality:this.nationality,
      arrivalDate:this.arrivaldate,
      history:this.history,
    }
    let url = "https://127.0.0.1:8000/api/post/change";
    this.http.post(url, toSend).toPromise().then((data:any) => {
      console.log(data);
    })
  }

我如何在 symfony 中接收来自 angular 的请求并发送对 angular 的响应

    /**
     * @Route("/api/post/change", name="api_post_change", methods={"POST"})
     */
    public function changePatient(Request $request) : Response
    {
        $receivedRequest = $request->getContent();
        $patientId = (int)explode(":", explode("\n", explode(",", $receivedRequest)[0])[1])[1];
        $birthday = explode("\"", explode("\n", explode(",", $receivedRequest)[2])[1])[3];
        $arrivalDate = explode("\"", explode("\n", explode(",", $receivedRequest)[13])[1])[3];
        $post = $this->serializer->deserialize($receivedRequest, Demographie::class, 'json');
        $response = $this->updateClient($patientId, $post, $birthday, $arrivalDate);
        $response->headers->set('Access-Control-Allow-Origin', '*');
        return $response;
    }

    public function updateClient(int $patientId, Demographie $infos, $birthday)
    {
        $demographieData = $this->demographieEntity->findOneBy(['id' => $patientId]);
        $demographieData->setName($infos->getName());
        $demographieData->setBirthday(\DateTime::createFromFormat('Y-m-d', "2017-05-05"));
        $demographieData->setAge($infos->getAge());
        $demographieData->setProfession($infos->getProfession());
        $demographieData->setAdress($infos->getAdress());
        $demographieData->setTelephone($infos->getTelephone());
        $demographieData->setMaritalStatus($infos->getMaritalStatus());
        $demographieData->setNationality($infos->getNationality());
        $demographieData->setEducation($infos->getEducation());
        $demographieData->setSpouseName($infos->getSpouseName());
        $demographieData->setSpouseProfession($infos->getSpouseProfession());
        $demographieData->setSpouseEducation($infos->getSpouseEducation());
        $demographieData->setArrivalDate(\DateTime::createFromFormat('Y-m-d', "2017-05-05")/*\DateTime::createFromFormat('Y-m-d', "2018-09-09")*/);
        $demographieData->setHistory($infos->getHistory());
        $this->em->persist($demographieData);
        $this->em->flush();
        $demographieSerialized = $this->serializer->serialize($demographieData, 'json');
        $response = new JsonResponse($demographieSerialized, 200, [], true);
        return $response;
    }
}

错误

控制台日志错误

我假设问题来自 cors,但我使用的是 nelmio,这解决了我在另一个帖子请求中遇到的 cors 问题。服务器对邮递员的响应也很好。所以如果你知道问题出在哪里,请告诉我

标签: angulartypescriptsymfony

解决方案


推荐阅读