jQuery Ajax调用遇到错误“已加载”

时间:2019-01-09 09:08:45

标签: jquery ruby-on-rails ajax

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

$.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标头的HTML。我将需要检查如何在没有HTML标头的情况下在服务器上呈现HTML。由于iam是Rails的新手,这可能需要一些时间,但是我稍后会在这里进行更新

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

1 个答案:

答案 0 :(得分:0)

您忘了第4行的分号:

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

但是那不能解决问题。 您可以发布要通过Ajax加载的html吗?