关于火狐运行var obj = eval('(' + data + ')');时 报SyntaxError: missing ] after element list错误,Chrome和IE正常
情形例如以下:
当使用ajax接收从后台传递过来的json数据时
$.ajax( {
type : "POST",
dataType : "json",
url : "RegisterAction.action",
data : params,
success : function(data) {
console.log(data);
var obj = eval('(' + data + ')');
console.info(obj);
},
error : function(data, status, e) {
alert("错误");
}
});
当设置dataType : "json", 程序会跳到error中
当去掉dataType : "json", 程序报SyntaxError: missing ] after element list错误
Struts配置为:
<struts>
<package name="build" extends="json-default">
<action name="RegisterAction" method="register" class="com.home.RegisterAction">
<result type="json"></result>
</action>
</package>
</struts>
Action为(部分代码):
public String register() {
PrintWriter out;
try {
out = response.getWriter();
out.print("{msg:true,name:'" + name + "',sex:'" + sex + "'}");
out.close();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
解决以上关于火狐报错问题的方法为:将dataType设置为html或text就可以产生SyntaxError: missing ] after element list问题的解决办法并不一定都和本例中一样
也有可能因其它问题所产生,固本例不一定具有公共性,还需详细问题详细分析。
作者:itmyhome
出处:http://blog.youkuaiyun.com/itmyhome1990/article/details/41977941