我在一些 JavaScript 中嵌入了以下 AJAX 代码:
$.ajax({
type: 'POST',
url: '/books',
data: {'book[author]':tags[i].book.author, 'book[edition]':tags[i].book.edition, 'book[title]':tags[i].book.title, 'book[url]':newBookUrl},
dataType: 'json',
async: false,
success: function(data){
mapcode+=" href='javascript:lightbox("+data+")' />";
alert(mapcode);
},
fail: function(){mapcode+=" href='' onclick='return false;' />";
alert(mapcode);}
});
它调用了这个模型中的 create 方法:
def create
book = Book.new(params[:book])
if (Book.find_by_url(book.url))
book = Book.find_by_url(book.url)
else
book.save
end
book.users << current_user
render :json => book.url
end
由于某种原因,成功和失败回调都没有触发。否则,AJAX 似乎正在工作。新数据上传到数据库,根据 Firebug,我得到了 JSON 返回的 book.url。知道这里发生了什么吗?