我试图通过DOJO请求向我的控制器发出请求,
request("/category/", {
method: "PUT",
data: {
original: event.target.getAttribute("data-original"),
edited: event.target.getAttribute("data-edited"),
id: event.target.getAttribute("data-id")
}
}).then(function(response) {
response = JSON.parse(response);
if(response.success) {
createRow(response.id);
} else {
// handle validation errors here
}
});
这会向我的/category/
路由发出一个PUT请求,该路由会被接收并发送给控制器,此时我想访问我认为没有的$_PUT
超全球&# 39; t的存在方式与访问$_POST
超全局的方式相同。
public function putIndex()
{
try {
try {
$this->category->edit(
new CategoryVO($request['id'], $request['original']),
new CategoryVO($request['id'], $request['edited'])
); // This is where I'd like to access the values sent in the PUT request
echo json_encode(
array(
"success" => true
)
);
} catch (CategoryValidation $validationException) {
echo json_encode(
array(
"success" => false,
"validation_errors" => $this->service->prepareErrors(
$validationException
)
)
);
}
} catch(\Exception $e) {
echo json_encode(
array(
"success" => false,
"unexpected_exception" => true
)
);
}
}
仅供参考:自定义构建框架,因此不具备zf2 / codeigniter可能带来的任何优秀功能。
答案 0 :(得分:0)
看看这是否对您有所帮助:https://stackoverflow.com/a/6270140/6097905
基本上你需要获取请求方法(我想它无论如何都会派上用场),然后检索数据,并以静态方式存储它。
答案 1 :(得分:0)
您确定没有$_PUT
超全球,并且PUT
请求中发送的数据不会出现在$_POST
。< / p>
您必须手动从php://input
读取数据,然后将其存储在某处。
谷歌搜索&#34; PHP PUT数据&#34;产生这个最佳结果,这有一个很好的例子: http://www.lornajane.net/posts/2008/accessing-incoming-put-data-from-php