javascript - js执行eval()抛出异常SyntaxError

 您是漂亮女人807 发布于 2022-11-11 21:13

由于后台出错时返回的数据问题(执行sql底层jar包抛出,一个字符串,不是key,value格式),前台接收到字符串后eval()方法报错SyntaxError异常,分别加try ,catch能够处理,但是重复代码太多(好多页面都是这么写的),改起来相当不方便,能否写个公共方法,监听eval()函数执行过程中的异常,谢谢。

function save() {
        $('#addForm').form('submit', {
            url : url,
            success : function(data) {
                var jsondata = eval("(" + data + ")");
                var message = jsondata.message;
                if (jsondata.success) {
                    $.messager.alert('成功', '操作成功');
                    $('#admin_yhgl_addDialog').dialog('close');
                    $('#dg').datagrid('reload');
                } else if (!jsondata.success) {
                    $('#save').linkbutton('enable');
                    $.messager.alert("操作失败", message);
                }
            }
        });

    }
2 个回答
  •    try {
            eval("("+data+")");
        }
        catch(err) {
            location.href = window.location.href;
        }
    2022-11-12 15:31 回答
  • 如果你只是解析JSON格式的数据话,用JSON.parse即可。
    然后你说

    由于后台出错时返回的数据问题

    我想你应该去把这个问题解决,让失败的时候也返回一个正确格式的字符串就行,而不是在前台再做一个治标不治本的东西。

    2022-11-12 15:31 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有