为了帮助网友解决“JQuery中ajax不能解析json”相关的问题,中国学网通过互联网对“JQuery中ajax不能解析json”相关的解决方案进行了整理,用户详细问题包括:Action:
@Controller
@Scope("prototype")
@Namespace("/")
@ParentPackage("json-default")
public class OaAction extends ActionSupport
private String name;
private String pass;
private String msg;
@Action(value="/login",
results={@Result(name="success",location="/main.jsp"),
@Result(name = "login",type="json") })
public String login()
{
Map<String,Object> map = new HashMap<String,Object>();
if(name=="经理1" && pass=="123456")
{
//将数据存储在map里,再转换成json类型数据,也可以自己手动构造json类型数据
map.put("flag","true");
map.put("info","欢迎登陆");
JSONObject json = JSONObject.fromObject(map);//将map对象转换成json类型数据
msg = json.toString();//给msg赋值,传递给页面
return SUCCESS;
}
else
{
map.put("flag","false");
map.put("info","用户名或者密码错误");
//将map对象转换成json类型数据,在此处打断点json有以下两个属性
nullObject : null;
propeties:{flag=false, info=用户名或者密码错误}
JSONObject json = JSONObject.fromObject(map);
msg = json.toString();//给msg赋值,传递给页面
return "login";
}
}
@JSON
public String getMsg()
{
return msg;
}
public void setMsg(String msg)
{
this.msg = msg;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
public String getPass()
{
return pass;
}
public void setPass(String pass)
{
this.pass = pass;
}
jsp:
<div id="lg">
<input type="text" name="username" id="uname"/>
<input type="password" name="password" id="password"/>
<input type="submit" class="login-sub" value="" id="lgbtn"/> <br />
<div id="msg"></div>
</div>
$(function(){
$('#lgbtn').click(function(){
var name=document.getElementById("uname").value;
var pass=document.getElementById("password").value;
$.ajax
({
url:"login.action",
dataType:"json",
type:"post",
data:"name="+name+"&pass="+pass,
async:false,
success:function(data)
{
//将数据转换成json类型,可以把data用alert()输出出来看看到底是什么样的结构
alert(data);//弹出对话框的内容为:Object object
var d = eval('('+data+')');
alert(""+d.flag+""); //没有弹出对话框
alert(""+d.info+"");
},
error:function()
{
alert("请求失败");//没有报请求失败
}
});
});
});,具体解决方案如下:
解决方案1:
msg要用response.getWriter().write(msg),login方法要返回NONE。
这样的响应的json数据才能被ajax处理。
通过对数据库的索引,我们还为您准备了:
jQuery中ajax和post处理json的不同
答:注意如果post获取,则要将返回的数据eval()一下,否则取不到数据; function haha() { jQuery.post("addComment!comment.action", function aa(data) { data = eval_r(data);//POST方法必加,ajax方法自动处理了 alert(data[0].userId); alert...
===========================================使用jQuery的ajax,取回json数组进行解析的时候出...
问:$.ajax({ type: "post", url: "applicationAjaxAction.action", async: ...
答:你服务器端用的是JAVA吧?这个报错一般是你返回的数据不是json,所以就会出现这个错误。建议你用UNITTEST去对该方法做个测试。确认你每次生成的JSON都可以正确解压。那JQUERY就应该不会出错了
===========================================jQuery 中Ajax请求,前台获取不到返回json数据,大...
问:List<DbInfo> list = dbinfoService.queryDbinfo(text);//dbinfo是实体...
答:alert(data[0].id)应该是这样的吧 这个是数组对象吧
===========================================用jquery ajax解析json文件内容有问题
问:$(document).ready(function(){ $('#button').click(function(){ $.ajax...
答:没有报错吗?F12查看一下开发者工具~
===========================================jquery ajax解析json
问:php脚本中$json=json_encode(array('username'=>'dsadsa','password'=>'...
答:$.post(url,send,function(data){ alert(data.username); },'json')
===========================================jquery的AJAX请求json出错
问:$(function(){ $.ajax({ url:"js/myJson.json", data:"", dataType:"jso...
答:alert(data)看看
===========================================JQuery中ajax不能解析json
问:Action: @Controller @Scope("prototype") @Namespace("http://www.xue163.com/") @ParentPac...
答:msg要用response.getWriter().write(msg),login方法要返回NONE。 这样的响应的json数据才能被ajax处理。
===========================================jQuery中ajax和post处理json的不同
问:Action: @Controller @Scope("prototype") @Namespace("http://www.xue163.com/") @ParentPac...