Rails 3.1 -调用AJAX请求两次

Rails 3.1 - calling AJAX request twice

本文关键字:两次 请求 AJAX 调用 Rails      更新时间:2023-09-26
<%=link_to 'Add note', {:controller => 'home', :action => 'add_note', :id =>user.id}, :remote => true%>

点击此链接后称为页面_add_note.html。通过JS erb ( add_note.js.erb )。这个文件看起来像这样:

$('div#ajax_div').html("<%= escape_javascript(render('add_note')) %>");

看起来不错,点击上面的链接后就加载到了ajax_div一个内容的文件_add_note.html.erb

但问题是,在点击我在Firebug中看到的链接后,ajax调用被处理了两次。

GET /home/add_note?id=39 200 OK 601ms   
GET /home/add_note?id=39 200 OK 1154ms

这怎么可能?会出什么问题呢?

这可能与资产管道有关,尽管资产管道文档在这里不是很有用。你可能有application*.js。*在资源路径中包含两次。运行:

$ find . -name "application*.js*"
./app/assets/javascripts/application.js
./public/assets/application.js
./public/assets/application-5f5e14d05ab99cac084b66cb87bbeec8.js
./public/assets/application-5f5e14d05ab99cac084b66cb87bbeec8.js.gz
./public/assets/application-95fca227f3857c8ac9e7ba4ffed80386.js.gz
./public/assets/application-95fca227f3857c8ac9e7ba4ffed80386.js
./public/assets/application.js.gz

如果您看到上面的图片,从public/assets中删除生成的资产。

当你包含js两次时,它会调用两次