vue.js ajax传参 后台参数不为application/x-www-form-urlencoded MIME

发布于 2022-09-07 22:56:09 字数 1575 浏览 17 评论 0

post请求 过滤器 encodeURI未解决!! 使用contentType也于事无补

help:
https://blog.csdn.net/justlov...

测试环境1:ajax带参请求:name
google
get/post 无变化
前台:直接传递name(值可获取)
后台:解码/不解 效果一致
当参数nam值通过浏览器ajax request请求到后台不为
application/x-www-form-urlencoded MIME 值

效果与编码一致

浏览器的request请求值为application/x-www-form-urlencoded MIME
request 200

个人考虑:前台与后台编码不一致

前端:

data() {
    var name=this.$route.query.name;
        $.ajax({
            url : 'topInfo?name='+name,
            contentType: "application/json; charset=utf-8",
            type : 'POST', //GET
            async : false, //或false,是否异步
            //timeout : 5000, //超时时间
            dataType : 'json', //返回的数据格式:
            success : function(data) {
                this.items = data.data;
            },
            error : function(data) {
                alert("失败!!");
            }
        })
        debugger;
    return {
        items
    }
},

后台:

public void moreList() throws Exception
{
    if("".equals(name)||name==null){
        SessionUtils.outRightJSon(this.response,"--null--");
    } else if(name.equals("%E5%91%A8%E8%80%81%E5%B8%88")){
        SessionUtils.outRightJSon(this.response,"--周老师--");
    }
    //URLDecoder.decode(name,"UTF-8")
    request.setCharacterEncoding("utf-8");
    ContentVO listContentVo = topServiceImpl.more(name,5);
    SessionUtils.outRightJSon(this.response, listContentVo);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

雅心素梦 2022-09-14 22:56:09

这明显前端url编码了,后端解码就是了。

但可能前后端编码与解码的规则不统一,如果没有什么特殊字符,不要编码也可以。

另外,不是说 post请求吗?怎么截图里不是。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文