Redmine插件:ajax“Uncaught ReferenceError:get is not defined”

时间:2014-02-23 11:48:11

标签: javascript jquery ajax

我正在尝试弄清楚如何修复一个名为“REdmine Hooks Manager”的插件,我刚刚添加到我的Redmine安装中。

每当我尝试点击其中一个按钮来配置Chrome开发者工具报告的插件时:

未捕获的ReferenceError:未定义get

生成异常的HTML如下所示:

<li><a href="#" onclick="$.ajax({url:'/hooks/tree?by=location', async:true, data:'hook=' + selected_hook + '&all=' + ($('show_all').checked ? 1 : 0), type:get}).done(function() {structured_by = 'location'})" class="">By location</a></li>'

<input id="show_all" name="show_all" onchange="$.ajax({url:'/hooks/tree', async:true, data:'hook=' + selected_hook + '&by=' + structured_by + '&all=' + ($('show_all').checked ? 1 : 0), type:get})" type="checkbox" value="1" />'

<a id="view_layouts_base_content" href="#" onclick="if ((html_code_changed == false) || confirm('HTML code has not been saved and going to be lost if you continue... Are you sure?')) { $.ajax({url:'/hooks/load?hook=view_layouts_base_content', async:true, type:get}).done(function() {updateSelectedHook('view_layouts_base_content')}); }" class="icon icon-file text-plain selected"> Content (bottom)</a>'

等...

我找到了这个似乎相关的javascript(正在加载):

function updateSelectedHook(hook) {
  var previousItem = $('#'+selected_hook);
  if (previousItem) {
      previousItem.removeClass('selected');
  }
  selected_hook = hook;
  var nextItem = $('#'+selected_hook);
  if (nextItem) {
      nextItem.addClass('selected');
  }
  html_code_changed = false;
  }

function updateHookPreview() {
  $('#preview-content').html($('#html_code').val());
  $('#preview').show();
  }

function updateHooksTree(url, mode) {
  $.ajax({
    url: url,
    type: 'get',
    data: 'hook=' + selected_hook + '&by=' + mode + '&all=' + ($('#show_all').is(':checked') ? 1 : 0),
    success: function(data) { structured_by = mode; }
  });
}

function updateHookForm(url, hook, msg) {
  if ((html_code_changed == false) || confirm(msg)) {
    $.ajax({
        url: url,
        type: 'get',
        success: function(data) { updateSelectedHook(hook); }
    });
  }
}

该插件适用于干净的安装,所以我强烈怀疑这是两个插件之间的兼容性问题。经过相当多的挖掘后,我发现似乎有3个jQuery副本被加载。版本1.8.3,1.7.1和1.7.3因此可能导致问题。

我还试图使用Chrome脚本调试器进入updateSelectedHook函数,但它没有被调用。也许是因为$ .ajax调用本身失败了。

所以...现在最好的猜测是,更新版本的jQuery改变了ajax调用的方式但是我已经没有关于如何进一步测试的想法,并希望这里的某人可能能够协助。有什么想法吗?

提前致谢。

0 个答案:

没有答案