关于axios.js中的POST连接JAVA后台无法获取值,或者直接在JavaScript中拦截问题解决

这个问题很久前就碰到了,那时候没那心情研究这个,但今天大晚上通宵研究这个问题,百度了一大堆。但是这些回答都是Feces,真的很烦,贴段代码就ok了。把完整代码发出来,让人跑跑,看看是否真的解决了,然后在一堆垃圾中,找答案。

 

 

为了解决这个问题,我自己在原有的项目,写了一个demo文件。

讲讲这个问题之所在吧,当我已axios的post送信时,JavaScript发送的数据就一直处理在Java后台得不到值,连方法都没进。一直报这个错误org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'GET' not supported,看控制台的网络也是一直发送GET连接,而在消息头里确是POST连接,这个axios真的垃圾!!!

以下方式都不可实现接收值

                axios.post('/userUel', {
                    param: '1'
                }, {
                    // cancelToken: source.token
                })
    @ResponseBody
    @RequestMapping(value = "/getHobbys", method ={RequestMethod.POST})
    public Hobbys getHobbys( @RequestParam(value = "id",required = false) String id){
        System.out.println("-----------------------------");
        System.out.println("id:"+id);//结果   id:null
    }

 利用qs.js转json格式来传值,百度上全是这类,没用!

//这是.vue的使用,如果百度.js的方式实现,还是没用,后台得到的值空值
const qs = require('qs');
axios.post('/foo', qs.stringify({ 'bar': 123 }));

mport qs from 'qs';
const data = { 'bar': 123 };
const options = {
  method: 'POST',
  headers: { 'content-type': 'application/x-www-form-urlencoded' },
  data: qs.stringify(data),
  url,
};
axios(options)

真实有效,亲测没问题!

var app1=new Vue({
        el:'#app1',
        id:'1',
        created: function (){
            this.getHobbysAll(1);
        },
        methods: {
            getHobbysAll: function (id) {
                var str = '{"id":23}';
                console.log(str);
                const params = new URLSearchParams();
                params.append('id', '1');
                axios.post('http://localhost:8080/getHobbys', params).then(function (response) {
                    console.log("12345");
                    console.log(response);
                    console.assert(response!=null)
                    var arr = response.data;
                    console.log(arr)
                });

         
            }
        }
})

方便你们查阅,证明已解决。

百度云盘:链接:https://pan.baidu.com/s/189rLR36W8fH_evIgL_IQug 
提取码:010r

 

你可能感兴趣的:(前端,axios.js)