vue的axios中,get成功post报405错误

源码如下:

    <div id="app" class="container">
        <h1>axios插件详解</h1>
        <a href="#" class="btn btn-primary" v-on:click="get">Get请求</a>
        <a href="#" class="btn btn-primary" v-on:click="post">Post请求</a>
        <a href="#" class="btn btn-primary" @click="http">http</a>
        <div>{{msg}}</div>
    </div>
    <script>
        new Vue({
            el:"#app",
            data:{
                msg:''
            },
            mounted: function(){
                
            },
            methods:{
                get:function(){
                    axios.get("../package.json",{
                        params:{
                            userId:"999"
                        },
                        headers:{
                            token:"liang"
                        }
                    }).then(res=>{
                        this.msg = res.data;
                    }).catch(function(error){
                        console.log("error init." + error);
                    });
                },
                post:function(){
                    axios.post("../package.json",{
                        userId:"888"
                    },{
                        headers:{
                            token:"tom"
                        }
                    }).then(res=>{
                        this.msg = res.data;
                    })
                },
                http:function(){
                    axios({
                        url:"../package.json",
                        method:"get",
                        data:{
                            userId:"101"
                        },
                        params:{
                            userId:"101"
                        },
                        headers:{
                            token:"http-test"
                        }
                    }).then(res=>{
                        this.msg=res.data;
                    })
                },
            }
        });
    </script>

然后get成功了,post报错如下:

clipboard.png

clipboard.png

接触vue不久,想知道这是什么原因,谢谢。

阅读 11.3k
3 个回答

试试这么写

let url = ``
let data = {
    userId: `101`
}
let config = {
    headers: {
        token: `http-test`
    }
}
axios.post(url, data, config).then(res => {
    if (res.status_code === `200`) {
        // your code
    }
})

http 错误405 method not allowed (请求方式不支持),从这里试试找问题

不知道你axios.post("../package.json")干嘛。。
get的时候是可以获取本地的json文件,但是post的时候需要服务器和浏览器需要三次握手

post请求的过程:

  1.浏览器请求tcp连接(第一次握手)

  2.服务器答应进行tcp连接(第二次握手)

  3.浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)

  4.服务器返回100 continue响应

  5.浏览器开始发送数据

  6.服务器返回200 ok响应

JS不能使用post直接对文件进行读写操作吧!

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