前台ajax传值后台controller取不到。

我的HTML

<body >
<p id="weixinhao" class="weixinhao" onclick="huoquValues()">123456</p>


<script type="text/javascript" src="../layui/jsplug/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
var  count=0;


 function huoquValues(){
     var  value=document.getElementById("weixinhao");//获取p标签值
     alert(value.innerText);
     count++;//模拟赋值次数
     alert(count);
     var URL = window.location.href;//获取当前URL
     alert(URL); 
     var params=[];
     params.value=value;
     params.count=count;
     params.URL=URL;
    $.ajax({
        type:'post',//请求方式
        url:'/update',//请求地址
        dataType:'json',//返回格式
        data:params,
        error:function() {
            alert('请求失败');
          },  
        success:function(params){
            alert('请求成功');

        }
    }); 

} 

我的controller

@RequestMapping("update")   
    @ResponseBody
    public Map<String,Object> update(String value,Integer count,String URL){
        System.out.println("已进入");

        System.out.println(value);
        System.out.println(count);
        System.out.println(URL);
        Map<String,Object> resultMap = new HashMap<String, Object>();       
        if(value == null || count==0||URL == null){         
            resultMap.put("result", "参数不合法!");          
            return resultMap;       }       
        resultMap.put("result", "操作成功");        

        return resultMap;   
        }

谢谢各位同志赐教,已解决。我这写的确实太麻烦了,我换了种方式可以传值到后台了。

var count=0;
function huoquValues(){
     var  value=document.getElementById("weixinhao").innerText;//获取p标签值
     alert(value);
     count++;//模拟赋值次数
     alert(count);
     var URL = window.location.href;//获取当前URL
     alert(URL); 
    $.post("/addWX","value="+value+"&count="+count+"&URL="+URL
            ,function(data){
        if(data!=null){
            alert("成功_ajax");
        }
    },"text")
}  

解决了的问答不知道怎么下掉,看到这问答的伙伴们路过就可以了。

5个回答

var params=[];
     params.value=value;
     params.count=count;
     params.URL=URL;

神奇的是居然不会报错吗,params是数组怎么可以执行下面操作,把

var params=[];改为var params={}
qq_33380252
1进击的小白 回复1进击的小白: 试过了,你这样是对的,是我记错了
9 个月之前 回复
qq_33380252
1进击的小白 那样写不会报错的,就是数据传不过去,另外你这样写最后其实还是数组
9 个月之前 回复

把params的定义改成params = { value: value, count: count, URL: URL };

1、在浏览器看一下network中是否看是否发送参数;
2、在拦截器看是否拦截
3、在控制层的类中打断点。

/update',//请求地址 这个写成 localhost:端口/项目路径/update

/update ??? 你直接写方法层的访问路径?controller类层的访问路径呢?
图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问