我在想我做错了什么。我收到了400个错误的请求,试图通过角服务发送一个帖子请求。我有两个实体--Document和DocumentCategory(多对多关系)。我可以张贴文件本身(没有类别)没有问题。
createDocument(title, body, categories) {
let document = {title: title, body: body, categories: categories};
this._crudService.createDocument(document).subscribe(
data => {
return true;
},
error => {
console.error("Error saving document! " + error);
return Observable.throw(error);
}
);
}
createDocument(document) {
let headers = new Headers({'Content-Type': 'application/json'});
let options = new RequestOptions({headers: headers});
//let body = JSON.stringify(document);
let body = document;
return this.http.post
('http://localhost:8000/documents', body, headers);
}
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('title', TextType::class)
->add('body', TextType::class)
//->add('categories', TextType::class)
->add('categories', EntityType::class, array(
'class' => 'AppBundle:DocumentCategory',
'multiple' => true,
'expanded' => true,
'by_reference' => false,
'choice_label' => 'id',
))
;
}
/**
* @ORM\ManyToMany(targetEntity="DocumentCategory", mappedBy="documents")
* @JMSSerializer\Expose
*/
private $categories;
/**
* @ORM\ManyToMany(targetEntity="Document", inversedBy="categories")
* @ORM\JoinTable(name="document_category_document")
* @JMSSerializer\Expose
*/
private $documents;
{
"title": "t",
"body": "<p>b</p>",
"categories": [
{
"id": 1,
"name": "cat1",
"documents": []
},
{
"id": 2,
"name": "cat2",
"documents": []
}
]
}
正如我所说,如果我删除类别,一切都可以工作。我想不通:(
编辑:当我试图将上面的json作为application/json发送时,Postman显示了这一点作为响应:
{
"children": {
"title": {},
"body": {},
"categories": {
"errors": [
"This value is not valid."
],
"children": {
"1": {},
"2": {},
"3": {},
"4": {}
}
}
}
}
过了一段时间,我终于成功了。这是我的结果,以防有人有simmilar问题。这不是最优雅的解决方案,我会试图找到一个更好的,但至少它是有效的。问题出在控制器上。现在post方法如下所示:
public function postAction(Request $request) {
$form = $this->createForm(DocumentType::class, null, [
'csrf_protection' => false,
]);
$form->submit($request->request->all());
if (!$form->isValid()) {
return $form;
}
$em = $this->getDoctrine()->getManager();
$document = $form->getData();
$categories = $request->request->get('categories');
foreach ($categories as $categoryId) {
$category = $em->getRepository('AppBundle:DocumentCategory')->find((int)$categoryId['id']);
$category->addDocument($document);
$document->addCategory($category);
$em->persist($category);
}
$em->persist($document);
$em->flush();
$routeOptions = [
'id' => $document->getId(),
'_format' => $request->get('_format'),
];
return $this->routeRedirectView('get_document', $routeOptions, Response::HTTP_CREATED);
}
我的形式很简单:
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('title', TextType::class)
->add('body', TextType::class)
;
}
这是我用于网络调用的函数。 接口类 收到400个错误请求。 错误日志 任何帮助都将不胜感激。
我有我的api在Django和Django REST框架(DRF)。 这是我的设置文件: 我得到了坏请求(400)错误: 我查看了Chrome的网络选项卡,我得到的是: 在React中,我得到: 问题是什么,错误背后的原因是什么?API正在工作,我以前没有这个错误。
我正在尝试配置一个基于extjs作为前端和Spring作为后端的小应用程序。因此,为了从extjs与服务器通信,我们需要在存储区配置代理编写器。我的代理配置如下所示: 这是Spring控制器中的@Request estMmap: Tomcat每次回答“400错误请求”时都会使用描述“客户端发送的请求语法不正确”。 所以,但是如果我将代理类型更改为ajax并请求映射以获取POST请求,一切都可以正常
当我添加ACDailyLine时,两个post方法的请求都变为4oo错误 为什么当我只放ACDailyH post方法时,一切正常,返回201请求。当我为AcDailyLine添加时,两者都返回400个错误请求。请帮忙,提前谢谢:) 在这里,当我调试该行时
我试图通过LinkedIn API上的共享发布一个LinkedIn共享更新,使用PHP库LinkedIn-Client API。我已经成功地授权了该用户,并从该用户那里返回了访问令牌。我将该令牌与这个共享API调用一起使用。下面是我的代码: LinkedIn-Client API在内部使用Guzzle处理HTTP请求。我试图直接使用,而不使用,但是错误相同,没有成功。 致命错误:未捕获的异常“GU
我们有一个公司范围的Nexus 3服务器 拥有我们自己的文物和 用作Maven Central和其他回购的代理。 开发人员使用两个存储库: maven针对所有已发布/稳定的工件发布版本策略“Release”和 版本策略为“快照”的所有快照工件的maven快照 这两个存储库都用于Gradle构建: 现在,当Gradle试图解决快照依赖关系时,它会询问releases存储库,Nexus会用 而构建失败