![](/img/trans.png)
[英]DELETE method does not work with PHP + Slim Framework + nginx
[英]Issue with DELETE method- PHP slim framework
我有DELETE方法的问题。 下面是代码,其中我收到DELETE方法的404 error
。 如果我使用get
方法而不是delete
方法,则代码将正确执行。 请帮助我哪里我做错了。
<?php
require "Slim/Slim.php";
require "NotORM/NotORM.php";
\Slim\Slim::registerAutoloader();
$app = new \Slim\Slim();
$pdo = new PDO('mysql:host=localhost;dbname=rest_trial', 'uname', 'passwd');
$db = new NotORM($pdo);
//DELETE method
$app->delete("/deletebook/:id", function ($id) use($app, $db) {
//$app->get("/deletebook/:id", function ($id) use($app, $db) {
$app->response()->header("Content-Type", "application/json");
$book = $db->books()->where("id", $id);
if ($book->fetch()) {
$result = $book->delete();
echo "Book deleted successfully";
}
else{
echo "Book id $id does not exist";
}
});
$app->run();
如果您在浏览器控制台的“网络”选项卡中查找,则可以检查请求的方法是否实际上是DELETE
。
某些浏览器不支持PUT
和DELETE
http请求方法。 Slim为此提供了一种方法:
“ 不幸的是,现代浏览器不提供对HTTP DELETE请求的本机支持。要解决此限制,请确保HTML表单的method属性为“ post”,然后向HTML表单中添加方法重写参数,如下所示:
<form action="/books/1" method="post">
... other form fields here...
<input type="hidden" name="_METHOD" value="DELETE"/>
<input type="submit" value="Delete Book"/>
</form>
“ 如果您使用Backbone.js或命令行HTTP客户端,则还可以使用X-HTTP-Method-Override标头覆盖HTTP方法。 ”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.