[英]Syntax Error Jquery Rails (semicolon?)
这是我在加载页面时包含的代码:
<script type="text/javascript">
function test() {
$.get('/login', function(data){
alert("test");
$('#flash_content').html("hi");
}, 'script');}
function test2(){
var jqxhr = $.get("/login", function(data) {
$('#flash_content').html(data);}, 'script')
.success(function() { alert("second success"); })
.error(function(request, status,error) { alert(error); })
.complete(function() { alert("complete"); });}
$(document).ready(function() {
$("#login").click(function(event){
event.preventDefault(); // Prevent link from following its href
test2();
});});
</script>
当我调用test2()时,我可以在Rails服务器日志中看到它呈现了应有的视图,而在萤火虫中,我看到来自Ajax get的响应确实是我想覆盖到页面上的表单,但是上面没有任何内容。该页面实际上发生了变化。 我已经用字符串“ hi”替换了“ Data”,并且确实将其放入了页面中。 如您所见,弹出警报并告诉我:
SyntaxError: missing ; before statement
这是我用于登录的控制器方法:
@user = User.new
respond_to do |format|
format.html { }
format.js {render :layout => false }
format.xml { head :ok }
end
以及应呈现的视图:
<%= form_tag user_sessions_path, :method => :post do %>
<div class="field">
<%= label_tag :username %><br />
<%= text_field_tag :username %>
</div>
<div class="field">
<%= label_tag :password %><br />
<%= password_field_tag :password %></br>
Remember me : <%= check_box_tag :remember %>
</div>
<div class="actions">
<%= submit_tag "Login" %>
</div>
<% end %>
我已经呆了几个小时了,所以也许我没有看到明显的东西:(谢谢。
您告诉jquery返回的是javascript( $.get
最后一个参数)。 这告诉jquery,当收到您的响应时,应该对其进行评估。
但是,您的响应是html-试图评估为javascript没有意义。 您应该忽略该参数(让jquery猜测)或将其设置为“ html”。
尽管我相信您需要将它放在format.html
版本之前,但Rails仍将format.js
块用于xhr请求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.