2017-04-11 124 views
0

我正在做这个简单的ajax调用在我的Rails应用程序中,像这样。渲染js.erb输出原始javascript代码

<%= link_to 'test_js', '#', class: "ajax_call" %> 

<script type="text/javascript"> 
    $(".ajax_call").on("click", function() { 
    $.ajax({ 
      url: "<%= users_get_details_path %>", 
      dataType: 'script', 
      type: 'GET' 
     }); 
    }) 
</script> 

和我的控制器动作看起来像这样

def get_details 
    respond_to do |format| 
     format.js {} 
    end 
    end 

get_details.js.erb

$(document).ready(function() { 
console.log('working!!!'); 
alert("working!!!"); 
}); 

这不会给在控制台中的任何警报或文字或替代任何错误它在dom控制台中输出整个js.erb原始内容。我不明白我在这里做错了什么。

+0

尝试仅放置alert(“working !!!”);',它不需要'$(document).ready(function()'函数。 – Emu

+0

@asdfkjasdfjk尝试在URL中放入纯路径。例如url:“users/get_details” – Vishal

+0

在尝试了几件事情之后,现在相同的代码正在工作,可能是缓存问题或其他问题,但是突然出现相同的代码开始工作 – asdfkjasdfjk

回答

0

如果你想获得控制台日志或警报结束时,Ajax请求,你可以象下面这样:

<%= link_to 'test_js', '#', class: "ajax_call" %> 
<script type="text/javascript"> 
    $(".ajax_call").on("click", function() { 
     $.ajax({ 
      url: "<%= users_get_details_path %>", 
      dataType: 'script', 
      type: 'GET', 
      success: function(data){ 
      console.log('working!!!'); 
      alert("working!!!"); 
      console.log(data); 
      } 
     }); 
    }) 
</script> 

我添加console.log(data)登录你users_get_details_path得到了什么数据。

希望它有帮助。