0

所以我有一个网站,我想点击一个按钮,检查用户是否有某些权限,如果有,弹出一个窗口到一个新的网页。在java脚本上,我有这样的东西:

function sendAjax(methodName, dataArray, success, error, category) {
    var error2 = error || function () { };
    $.ajax({
        type: 'POST',
        url: '/PermissionChecker' + methodName,
        data: JSON.stringify(dataArray),
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        success: function (r, s, x) { if (!success || success(r, s, x) != false) if (typeof (window.ChangeLogAdd) == 'function') { ChangeLogAdd(category); } },
        error: error2
    });
}

function CheckPermissions() {
    sendAjax("CheckPermission", null, function (data) { var permission = eval('(' + data + ')'); if (permission == true) { alert('yay'); } else { alert('nay'); } }, null, 'Check Permission');
}

而 C# 端是一个简单的函数,它执行 if 检查并返回一个 bool。函数调用正常,但是当它返回布尔值时,我得到一个javascript错误“预期']'”。我认为这与我的成功功能有关:

    function (data) { 
        var permission = eval('(' + data + ')'); 
        if (permission == true) { 
            alert('yay'); 
        } 
        else { 
            alert('nay'); 
        } 
    }

看到在我尝试在那里做的事情之前我没有收到这个错误,所以我想知道如何从 ajax 调用中获取数据以通过permission == trueif/else 检查

4

1 回答 1

0

不要为此目的使用 eval 。这是不安全的,也是许多错误的来源。只需让服务器响应 JSON 并使用 $.getJSON。

于 2013-04-02T21:04:50.083 回答