php怎样获取http的delete方法提交的数据?

常用的是get与post方法
我测试了put方法,可以用file_get_contents("php://input");来获取,但是delete却不行,
用$_REQUEST也没有获取到。

请问要怎样才能获取delete的数据?

补充:
用$_SERVER['REQUEST_METHOD'] 确实可以获得请求方法是:delete
但请求的数据通过$_SERVER['QUERY_STRING']和$_SERVER['PHP_SELF']中都没有找到。

我放个测试的代码吧:
ajax.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<script src="./vue-2.1.8.min.js"></script>    
<script src="./vue-resource.min.js"></script>
</head>
<body>
<div id="app">
    {{msg}}
<p><button @click="change()">点击</button></p>    
</div>

<script>
var url="./api.php";

new Vue({
    el:"#app",
    data:{
        msg:"哈哈",
    },
    methods:{
    change:function(){
        var _this=this;
        var data={'a':"123",'b':"3434"};
        this.$http.delete(url,data).then(function(d){
            //var re=JSON.parse(d);
            console.log(d);
            _this.msg=d.data;

        })
    }
    }
})    

</script>
    
</body>
</html>

api.php的代码:

<?php
//echo $_SERVER['REQUEST_METHOD'];//DELETE
//echo $_SERVER['QUERY_STRING'];//data Blob size:0  type:""
echo $_SERVER['REQUEST_URI'];//  /api.php
?>
阅读 8.3k
4 个回答

delete方法没有请求体,所以file_get_contents获取不到。

php代码

if($_SERVER['REQUEST_METHOD'] === 'DELETE') {
    // 本次使用DELETE方法请求
    // 需要操作的数据都在URL中
    $uri = $_SERVER['REQUEST_URI'];
}

如果你是使用RESTFul, Delete方法通常不需要提交数据。 比如删除user, 使用 DELETE /user/<user_id> 就可以。

delete是什么包含才Tcp/ip协议族中厉害的请求方式嘛???

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题