angular - 错误错误:未捕获(承诺):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 问题。服务器对邮递员的响应也很好。所以如果你知道问题出在哪里,请告诉我
解决方案
推荐阅读
- javascript - Javascript - 如何在返回函数中访问类方法
- flutter - 溢出的 RenderFlex 的方向为 Axis.vertical
- python - 一次分配多个变量名
- python-3.x - Keras model.fit() 耗时且不显示进度条
- java - 不支持请求方法“GET”。为什么我会收到此错误?
- android - 为什么我的 RecyclerView 没有填充来自改造的数据?
- sql - 在 Postgres、PL/pgSQL 中使用格式错误的最后一行加载 csv
- python - 用不重叠的正方形填充不规则形状
- python - 如何根据索引列表从 grouby 对象中删除组?
- .net - 使用 .NET Winforms 显示 4x4 网格