javascript - js执行eval()抛出异常SyntaxError
高洛峰
高洛峰 2017-04-11 11:43:42
0
2
380

由于后台出错时返回的数据问题(执行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);
                }
            }
        });

    }
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全員に返信(2)
伊谢尔伦

如果你只是解析JSON格式的数据话,用JSON.parse即可。
然后你说

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

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

いいねを押す +0
刘奇
   try {
        eval("("+data+")");
    }
    catch(err) {
        location.href = window.location.href;
    }
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!