前端接收后台返回的“true”和 true


正月十五辛丑年 牛庚寅月 乙巳日

菜菜的我记录的第二天


前提条件为:如果后台返回的flag值是放在map里面并且是String值时,需谨慎处理,例:

后台伪代码:

@RequestMapping(value = "/printSave")
@ResponseBody
public String printSave(HttpServletRequest request,HttpServletResponse response) {
Map<String,String> flagMap = new HashMap<>();
String saveFlag = "true";
flagMap.put("saveFlag",saveFlag);
return JSONObject.toJSONString(flagMap);
}

前端js伪代码,第一种(可成功):
$.ajax({
   url:contextPath + "/ppp/printSave", //后台处理程序
   type:'post',   //数据发送方式
   data:params,
   success : function(Data) {//回调方法,可单独定义
      if (Data != null) {
     var saveFlag= Data['saveFlag'];
         if (saveFlag == "true") {
            alert("导出成功,可下载!");
            makeButtonUse();
         } else{
          alert("导出失败,请重新操作!");
        }
 
前端js伪代码,第二种(可成功):
$.ajax({
   url:contextPath + "/ppp/printSave", //后台处理程序
   type:'post',   //数据发送方式
   data:params,
   success : function(Data) {//回调方法,可单独定义
      if (Data != null) {
         if (Data['saveFlag']) {
            alert("导出成功,可下载!");
            makeButtonUse();
         } else{
          alert("导出失败,请重新操作!");
        }

前端js代码错误示范:
$.ajax({
   url:contextPath + "/ppp/printSave", //后台处理程序
   type:'post',   //数据发送方式
   data:params,
   success : function(Data) {//回调方法,可单独定义
      if (Data != null) {
     var saveFlag= Data['saveFlag'];
         if (saveFlag) {
            alert("导出成功,可下载!");
            makeButtonUse();
         } else{
          alert("导出失败,请重新操作!");
        }

 

具体原因分析:
错误代码原因分析:
var saveFlag= Data['saveFlag']; 得到的是String类型的"true",但if里面只能是boolean值,所以错误
正确代码原因分析:
第一种:
var saveFlag= Data['saveFlag']; 得到的是String类型的"true",等号逻辑运算【saveFlag == "true"】得到的是boolean值,所以能正常运行。

第二种:未分析出原先
{
不明白为什么 Data['saveFlag'] 的值为boolean类型的,明明后台传送过来的是String类型呀
好吧,第二种运行正确的原因还没分析出,有知道的大佬欢迎评论区补充一下,让我这个小菜鸡也好好学习一番
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM