【问题标题】:Jquery Ajax call runs into error "has already been loaded"Jquery Ajax 调用遇到错误“已加载”
【发布时间】:2019-01-09 09:08:45
【问题描述】:

我调用 jquery ajax 来获取一些 html,并尝试将其注入 DIV。 ajax调用成功;我在“成功”功能中使用警报进行了测试。当我选择 div 并尝试通过 .html 注入 html 时,出现错误“未捕获的错误:rails-ujs 已加载!”被抛出。我怀疑我需要从响应中删除 html 标头,但是我是 curios,因为当我用谷歌搜索这个问题时,我找不到任何人使用它。有什么想法吗?

$.ajax({
url: "/qip_changes/4",
success: function(data){
    var temp = $("#modal_dialog")
    temp.html(data);}
});

Uncaught Error: rails-ujs has already been loaded!
at Object.Rails.start (eval at <anonymous> (jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1:350), <anonymous>:626:17)
at eval (eval at <anonymous> (jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1:350), <anonymous>:675:15)
at eval (eval at <anonymous> (jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1:350), <anonymous>:678:8)
at eval (eval at <anonymous> (jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1:350), <anonymous>:679:6)
at eval (eval at <anonymous> (jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1:350), <anonymous>:686:4)
at eval (<anonymous>)
at jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1:350
at Function.globalEval (jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1:351)
at text script (jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1:10373)
at ajaxConvert (jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1:9333)

这里要求的是我得到的 HTML。我认为它会尝试再次加载资源,因为 html 头包含在响应中。但我认为这是一个标准用例,那么我现在如何添加我的 html 正文来构建新的 div ?我从头部删除了几行,但你明白了..

<!DOCTYPE html>
<html>
  <head>
    <title>Qipmatedevel</title>
    <meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="iHpkgs5MnuprF/MSafLonZEsd+6OcrdLBxgIYdgLnL2IWeHpToeixf60mTw+ce2vLOsYimDPZwXmmxDR9C7k3g==" />

    <link rel="stylesheet" media="all" href="/assets/jquery-ui/theme.self-830c3407ba1359ea36eee978235be14de5b78dacfa658a31226fe4f2b0faa7e7.css?body=1" data-turbolinks-track="reload" />
<link rel="stylesheet" media="all" href="/assets/jquery-ui/core.self-e4bdefd3813c8a715955a6c65b9e730846dcae6a0576618563d635ff0b18a3ca.css?body=1" data-turbolinks-track="reload" />
<link rel="stylesheet" media="all" href="/assets/jquery-ui/accordion.self-aa0730fc025317fed4feff2aa5fc07cba5a545dfc5c913a2984ba6f8695b29fb.css?body=1" data-turbolinks-track="reload" />
.
.
.
.
<script src="/assets/qip_changes.self-877aef30ae1b040ab8a3aba4e3e309a11d7f2612f44dde450b5c157aa5f95c05.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/application.self-3e52b2e0960c022373a99a81be2db0f03db9befe8798811b43ad82485b0e8966.js?body=1" data-turbolinks-track="reload"></script>
  </head>

  <body>
    <div id='qip_change_show'>
<br>
Render my test
</div>

  </body>
</html>

所以我想我找到了问题所在。确实是尝试加载包括 HTML Header 在内的 HTML。我需要检查如何在没有 HTML 标头的情况下在服务器上呈现我的 HTML。由于我是 Rails 新手,这可能需要一些时间,但我稍后会在这里更新它

我的问题是,我尝试再次加载完整的 HTML 视图,包括所有标题。我添加了一个新的布局,它不包含任何 HTML 标题,并在我构建视图时呈现它。这解决了问题。

【问题讨论】:

    标签: jquery ruby-on-rails ajax


    【解决方案1】:

    你忘记了第 4 行的分号:

    $.ajax({
    url: "/qip_changes/4",
    success: function(data){
        var temp = $("#modal_dialog"); <--- Semicolon
        temp.html(data);}
    });
    

    但这并不能解决问题。 你能把你想通过ajax加载的html贴出来吗?

    【讨论】:

    • 在问题中添加了html
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    • 2012-02-15
    • 2014-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多