php怎样获取http的delete方法提交的数据?
伊谢尔伦
伊谢尔伦 2017-04-11 09:43:23
[PHP讨论组]

常用的是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>
<p id="app">
    {{msg}}
<p><button @click="change()">点击</button></p>    
</p>

<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
?>
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(4)
天蓬老师

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

php代码

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

这个?
HTTP context 选项

怪我咯

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

高洛峰

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号