Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript方括号作为变量值_Javascript_Internet Explorer_Csrf - Fatal编程技术网

JavaScript方括号作为变量值

JavaScript方括号作为变量值,javascript,internet-explorer,csrf,Javascript,Internet Explorer,Csrf,出于CSRF目的,我需要在下面的函数中使用[tokenName]将变量值作为名称传递。它在Firefox和Chrome中运行良好,但在IE11中不起作用 我得到的错误是:在[tokenName]行上需要标识符、字符串或数字 想法 $('#container').on('click','#delete',function(e) { e.preventDefault(); var button = $(this), form = but

出于CSRF目的,我需要在下面的函数中使用[tokenName]将变量值作为名称传递。它在Firefox和Chrome中运行良好,但在IE11中不起作用

我得到的错误是:在[tokenName]行上需要标识符、字符串或数字

想法

    $('#container').on('click','#delete',function(e) {
        e.preventDefault();
        var button = $(this),
            form = button.closest('form'),
            id = button.attr('data-id'),
            verify = button.attr('data-verify'),
            tokenName = form.find('input[name=token_name]').val(),
            tokenHash = form.find('input[name=' + tokenName + ']').val();

        // delete user via ajax
        $.post(form.attr('action'), {
                "id" : id,
                "object" : verify,
                [tokenName] : tokenHash
            }, function(data) {

            // do stuff


        }, "json");

    });

您可以始终使用较旧的语法:

  var options = {
      "id" : id,
      "object" : verify,
  };

  options[tokenName] = tokenHash;

  $.post(form.attr('action'), options, function(data) {
      //...
  });

您可以始终使用较旧的语法:

  var options = {
      "id" : id,
      "object" : verify,
  };

  options[tokenName] = tokenHash;

  $.post(form.attr('action'), options, function(data) {
      //...
  });
在Javascript对象文本中使用变量作为键是ES6的一个特性
[tokenName]:tokenHash
IE 11不支持此功能

单击查看各种js引擎的ES兼容性表使用变量作为Javascript对象文本中的键是ES6特性
[tokenName]:tokenHash
IE 11不支持此功能


单击查看各种js引擎的ES兼容性表不要使用IE。我没有选择人们使用什么浏览器可能重复的不使用IE。我没有选择人们使用的浏览器可能是重复的