【发布时间】:2018-05-26 17:56:16
【问题描述】:
我的目标是发出一个事件请求 PATCH,使用 VueJs 2 触发以下内容:
// Link and body is defined and fine
this.$http.patch(linkUrl, this.baseTerms, {someKey:'any value'}).then(response => {
console.log(response.body)
}, response => {
})
另一方面,该请求被 Symfony 3 - FosRestBundle 捕获,例如:
/**
* @Rest\Patch("/translations/update-base-delta/", name="update_base_delta")
*/
public function updateBaseDeltaAction(Request $request)
{
$em = $this->getDoctrine()->getManager();
$postData = json_decode($request->getContent(), true);
}
// config.yml:
fos_rest:
unauthorized_challenge: "Basic realm=\"Restricted Area\""
access_denied_listener:
json: true
routing_loader:
default_format: json
这样的结果是:状态码:405 方法不允许
这是请求:
Accept:*/*
Accept-Encoding:gzip, deflate
Accept-Language:en-GB,en-US;q=0.9,en;q=0.8
Access-Control-Request-Headers:content-type
Access-Control-Request-Method:PATCH
Connection:keep-alive
已经提到缺少的查询字符串参数和请求标头。 谁能提示我一个可行的例子或告诉我,在哪一部分专注于 VueJs 或 Symfony?
【问题讨论】:
-
仔细检查您在 chrome 开发工具中请求的网址
-
请求转到:/translations/update-base-delta/ 在服务器端:@Rest\Patch("/translations/update-base-delta/", name="update_base_delta")两个 URL 匹配。
标签: php rest symfony vue.js vuejs2