问题描述
functionGetStudentsPost(roleId){try{alert(roleId);$.post("/Role/GetStudentsOfRole","{roleId:"+roleId+"}",function(data){alert(data);},"json");}catch(ex){alert(ex);}}这个函数调用时,$.post方法不走,前面alert执行了,异常捕获里也没有执行,控制器中GetStudentsOfRole方法没有调用,mvc视图中引用了<scriptsrc="@Url.Content("~/Scripts/jquery-1.4.4.js")"type="text/javascript"></script>,不知道什么原因,哪位大神指导一下!
解决方案
解决方案二:
用FF的httpfox来看看
解决方案三:
$.post("/Role/GetStudentsOfRole",{roleId:roleId},function(data){alert(data);},"json");
解决方案四:
$.post("/Role/GetStudentsOfRole",{RoleId:roleId},//参数错误function(data){success(data);},"json");$.ajax({url:"/Role/GetStudentsOfRole",data:{RoleId:roleId},dataType:"json",type:"post",cache:false,success:function(result){}});
解决方案五:
引用3楼shengguang1587的回复:
$.post("/Role/GetStudentsOfRole",{RoleId:roleId},//参数错误function(data){success(data);},"json");$.ajax({url:"/Role/GetStudentsOfRole",data:{RoleId:roleId},dataType:"json",type:"post",cache:false,success:function(result){}});
$.post方式按照你写的调用没问题了,但是$.ajax按照你写的data:{roleId:roleId},确不行,如果是data:"{roleId:"+roleId+"}",这样调用没问题,这是什么原因呢?一个字符串,组成的json格式,对jquery的ajax调用不是和熟悉,最近在学习。
解决方案六:
data:"{roleId:"+roleId+"}",以后调用不要这样来写有歧义你括号包起来代表他是键值所以我上面给你写的是data:{RoleId:roleId},
解决方案七:
引用5楼shengguang1587的回复:
data:"{roleId:"+roleId+"}",以后调用不要这样来写有歧义你括号包起来代表他是键值所以我上面给你写的是data:{RoleId:roleId},
之前$ajax中加了contentType:"application/json;charset=utf-8",调用的时候json参数传的是roleId=1,因此进入错误处理函数了将contentType:"application/json;charset=utf-8",注释掉就好了这时json参数传的是roleId:"1",因此没问题了我还是安装了火狐浏览器调试出来的,不知道为什么加了contentType:"application/json;charset=utf-8",请求参数会成为roleId=1不加默认是什么?
解决方案八:
引用6楼xuanyuan0205的回复:
Quote: 引用5楼shengguang1587的回复:
data:"{roleId:"+roleId+"}",以后调用不要这样来写有歧义你括号包起来代表他是键值所以我上面给你写的是data:{RoleId:roleId},之前$ajax中加了contentType:"application/json;charset=utf-8",调用的时候json参数传的是roleId=1,因此进入错误处理函数了将contentType:"application/json;charset=utf-8",注释掉就好了这时json参数传的是roleId:"1",因此没问题了我还是安装了火狐浏览器调试出来的,不知道为什么加了contentType:"application/json;charset=utf-8",请求参数会成为roleId=1不加默认是什么?
contentType默认值为application/x-www-form-urlencoded标准JSON格式为[{"Key":"Value"}]
解决方案九:
引用7楼shengguang1587的回复:
Quote: 引用6楼xuanyuan0205的回复:
Quote: 引用5楼shengguang1587的回复:
data:"{roleId:"+roleId+"}",以后调用不要这样来写有歧义你括号包起来代表他是键值所以我上面给你写的是data:{RoleId:roleId},之前$ajax中加了contentType:"application/json;charset=utf-8",调用的时候json参数传的是roleId=1,因此进入错误处理函数了将contentType:"application/json;charset=utf-8",注释掉就好了这时json参数传的是roleId:"1",因此没问题了我还是安装了火狐浏览器调试出来的,不知道为什么加了contentType:"application/json;charset=utf-8",请求参数会成为roleId=1不加默认是什么?
contentType默认值为application/x-www-form-urlencoded标准JSON格式为[{"Key":"Value"}]
contentType:"application/json;charset=utf-8",这不是请求json格式吗?