【问题标题】:Syntax errors in ajax calls/javascript not appearing in rails applicationajax 调用/javascript 中的语法错误未出现在 rails 应用程序中
【发布时间】:2012-07-27 00:22:23
【问题描述】:

假设我的 js.erb 文件中有类似的内容。

$(div_id + <%= @line_num %>).html("<%=j render :partial => "quant_change_form" %>");

这很好,但如果我有一个语法错误,比如说(即方法不存在):

$(div_id + <%= @line_num %>).htmlabcd("<%=j render :partial => "quant_change_form" %>");

我的编辑器没有出现语法错误(我使用的是 RubyMine),Firebug 也没有出现错误。如果不告诉我原因,它根本行不通。这不是您应该在rails中进行ajax调用的推荐方式吗?

【问题讨论】:

  • 我不希望在源代码编辑器或 IDE 中突出显示像 .htmlabcd() 这样的错误,因为它不是语法错误,但是当您尝试时,我希望浏览器中出现运行时错误运行该代码。我没有 Firebug,但在内置的 FF 控制台中,当我在这里尝试类似的操作时收到错误“$(div_id + 1).htmlabcd is not a function”:jsfiddle.net/NAEn6(我确实必须单击FF 控制台中的“JS”按钮,因为默认情况下它只记录“Net”活动 - 确保打开 Firebug 中的等效设置。
  • 这似乎解决了我的问题:coderwall.com/p/yujrja 但我无法使用他的故障排除方法,因为我正在加载部分
  • 那篇 CoderWall 帖子说异步代码不会在日志中显示错误,但事实并非如此。至少,我在控制台中获取 asnyc 函数的错误没有问题。浏览器不知道也不关心服务器端代码发生了什么。如果 Firebug 对您不起作用,请尝试使用其他调试工具,例如 Chrome 的内置工具。

标签: jquery ruby-on-rails ajax firebug syntax-error


【解决方案1】:

好吧,经过一番搜索,我找到了一个合理的解决方案。出于某种原因,如果 js.erb 文件中有错误,它将默默地失败,并且在 Firebug 中不会显示错误。

这里概述了这个问题的解决方案:

http://www.alfajango.com/blog/rails-js-erb-remote-response-not-executing/

【讨论】:

    【解决方案2】:
    1. 您没有收到语法错误,因为语法有效
    2. 如果您没有收到 firebug 错误,则表示您的代码未执行,htmlabcd 是有效的方法名称。

    【讨论】:

    • 好的,所以这不是语法错误。但这是一个运行时错误,应该出现在 firebug 中。但即使出现语法错误,例如遗漏分号或随机输入一组字符,我也一无所获!
    • @yiinewbie 因为分号是可选的,如果省略它们不会产生语法错误。也许您的 javascript 文件根本没有加载?
    • 肯定加载了 javascript 文件,因为当我删除错误时,它工作正常。我相信这个问题与使用 rails 发出 ajax 请求的方式有关。
    • @yiinewbie Firebug 具有过滤选项,可能导致不记录任何 JS 错误。检查“控制台”下拉菜单中的选项。关于 Ajax 请求出现问题的可能性:what Ajax 请求?您的问题没有显示任何 JS Ajax 功能...
    • 是的,我打开了那个过滤器。我相信这个问题与 js.erb 文件中没有被识别的错误有关,正如这里所描述的 coderwall.com/p/yujrja 我只是认为必须有比那里描述的更简单的调试方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-20
    • 2012-04-27
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    • 2018-03-17
    • 1970-01-01
    相关资源
    最近更新 更多