Jquery AJAX请求don';t加载响应操作的js
我对动作的js响应有问题。我正在用轮询和Redis实现类似IM的东西。我发现的“问题”就在提交邮件的那一刻。我想用一个按钮(正常方式)或通过回车键。当使用按钮提交表单时,它工作正常:创建消息,其他用户在其屏幕中看到消息,消息通过Create.js显示在我的屏幕上,这是发送到我的屏幕的最后一条消息的前缀。当我用ENTER键提交表单时,除了create.js之外,所有的功能都很好(发送消息,另一个在此时接收消息),出于某种原因,create.js已加载,但没有执行将最后一条消息预先发送到我的屏幕的操作。我把代码放在下面,提前谢谢大家;) create.jsJquery AJAX请求don';t加载响应操作的js,jquery,ruby-on-rails,ajax,Jquery,Ruby On Rails,Ajax,我对动作的js响应有问题。我正在用轮询和Redis实现类似IM的东西。我发现的“问题”就在提交邮件的那一刻。我想用一个按钮(正常方式)或通过回车键。当使用按钮提交表单时,它工作正常:创建消息,其他用户在其屏幕中看到消息,消息通过Create.js显示在我的屏幕上,这是发送到我的屏幕的最后一条消息的前缀。当我用ENTER键提交表单时,除了create.js之外,所有的功能都很好(发送消息,另一个在此时接收消息),出于某种原因,create.js已加载,但没有执行将最后一条消息预先发送到我的屏幕的操
$(".conversations").prepend("#{escape_javascript(render partial: 'dashboard/kid_conversations/show_message', locals: { message: @message})}");
$("#kid_conversation_message_body").val("");
这是允许输入提交的js:
setInterval(function(){
$.ajax({
url: "#{dashboard_kid_conversation_conversation_polling_url(current_kid, token: (params[:token] rescue nil))}",
})},2000);
$('#kid_conversation_message_body').keypress(function(e) {
if (e.keyCode == 13 && !e.shiftKey) {
e.preventDefault();
$.ajax({
url: "#{dashboard_kid_conversation_messages_url}",
type: "POST",
data: $(this).serialize() + "&conversation_token=" + "#{params[:token]}",
success: $("#kid_conversation_message_body").val(""),
dataType: "json"
});
}
});
最后的日志是在输入key时记录的,因此create.js被加载
Rendered dashboard/kid_conversations/_show_message.html.haml (6.5ms)
Rendered dashboard/kid_conversation_messages/create.js.haml (11.4ms)
Completed 200 OK in 287ms (Views: 270.8ms)
创建操作:
def create
@message = KidConversationMessage.new(params[:kid_conversation_message])
@message.kid_conversation = @conversation
@message.kid = current_kid
@message.save
end
表格,我用Haml
.response
= form_for [:dashboard, @message] , html: {remote: true}do |f|
= hidden_field_tag :conversation_token, :body , :value=> @conversation.token
.control-group
= f.label :body, _('Reply')
= f.text_area :body, :rows => 4
= submit_tag _('Send'), :class => 'btn button'
在我看来,您的表单提交到
仪表板消息\u url
,而您的按键功能ajax发布到仪表板消息\u会话消息\u url
。检查您的路线,确保后者存在
如果这不起作用,您可以告诉我们您在web部门的“网络”选项卡中看到了什么。解决了,这是AJAX数据类型,删除它可以起作用,谢谢大家的帮助 您能否在整个过程中使用
控制台.debug(此处为变量)
功能并与我们共享结果?