美文网首页
post 发送json-05-21

post 发送json-05-21

作者: 封_绝 | 来源:发表于2019-12-11 16:10 被阅读0次

公司通常情况用的post请求是用对应的参数名进行接收,并且接收了pageObject对象,代码如下:

js:
var deferred = $.ajax({
            type: "POST",
            url: "getViolationOrderDetail.do",
            contentType: "application/x-www-form-urlencoded; charset=UTF-8",
            dataType: "json",
            data: {
                "orderNo": orderNo
                , "statusNo": statusNo
            },
...
controller
public ResultObject getViolationOrderDetail(PageObject pageObject,
                                              @RequestParam (required = false,defaultValue = "")String orderNo,
                                              @RequestParam (required = false,defaultValue = "")String statusNo){



今天想要换一种方式,通过jsonObject发送,接收。
如果js不变,直接修改controller,则无法接收,报错500


image.png
image.png

controller没有接收到任何请求。

思考:是不是发送请求的方式不正确,设置了dataType为json,content-Type为默认的

contentType 发送数据到服务器时所使用的内容类型。默认是:"application/x-www-form-urlencoded"。

dataType 预期的服务器响应的数据类型。
所以application/x-www-form-urlencoded是什么类型的数据?表单类型,只能根据参数名称一个一个接收,这需要写很多controller接收的参数。
如:

//js:
table = $('#orderTab').off().grid({
            "ajax": {  
                "url": "getLongTimeOrderList.do",
                "dataSrc": "data",
                "type" : "post",
                "data": function (d) {  //提交参g数给服务器进行查询
                    var mobileAccountSearch = $('#mobileAccountSearch').val();
                    var userNameSearch = $('#userNameSearch').val();
                    var vehNoSearch = $('#vehNoSearch').val();
                    var shopIdSearch = $('#shopIdSearch').val();
                    var orderNoSearch = $('#orderNoSearch').val();
                    var returnDateBegin = $('#returnDateBegin').val();
                    var returnDateEnd = $('#returnDateEnd').val();
                    var statusNo = $('#statusNo').val();
                    //查询参数 
                    d.mobileAccount= mobileAccountSearch;
                    d.userName= userNameSearch;
                    d.vehNo= vehNoSearch;
                    d.shopId=shopIdSearch;
                    d.orderNo= orderNoSearch;
                    d.returnDateBegin=returnDateBegin;
                    d.returnDateEnd=returnDateEnd;
                    d.orderStatus=statusNo;
                } 
            },
            // "searching":true, //显示查询框
            "columns": columns
        });

//controller
public PageObject getBranchList(PageObject pageObject,String mobileAccount,String orderNo,String returnDateBegin,String returnDateEnd,String shopId,String userName,String vehNo,String orderStatus){

https://matthung0807.blogspot.com/2018/02/jqueryajax-contenttypedatatype.html
https://www.jianshu.com/p/c6a0dc9000ef
http://api.jquery.com/jquery.ajax/

跨域

image.png

如果数组,list=xxx,xxx 用逗号隔开,不需要用中括号

相关文章

网友评论

      本文标题:post 发送json-05-21

      本文链接:https://www.haomeiwen.com/subject/hcajzqtx.html