Javascript Rails remote呈现一页json,JS ajax处理程序不会';抓不到

Javascript Rails remote呈现一页json,JS ajax处理程序不会';抓不到,javascript,ruby-on-rails,ruby,ajax,Javascript,Ruby On Rails,Ruby,Ajax,我想远程发布一个表单,然后返回一些JSON,我的JS知道如何处理。代码: <%= form_tag '/admin/order_lookup', remote: true, authenticity_token: true, id: "order-lookup-submit" do -%> <%= text_field_tag 'contact_string' %> <%= submit_tag 'Submit' %> <% end -%>

我想远程发布一个表单,然后返回一些JSON,我的JS知道如何处理。代码:

<%= form_tag '/admin/order_lookup', remote: true, authenticity_token: true, id: "order-lookup-submit" do -%>
  <%= text_field_tag 'contact_string' %>
  <%= submit_tag 'Submit' %>
<% end -%>

$("#order-lookup-submit").on("ajax:success", function(e, data, status, xhr) { 
  alert("in success")
})

def order_lookup
  # some code
  render json: @result
end

像所有可能的方式一样,我不断得到ActionController:未知信息。也没有根据常规逻辑成功调试。请尝试将表单标记更改为以下内容:

form_tag '/admin/order_lookup.json', remote: true, authenticity_token: true, id: "order-lookup-submit"
注意位置上附加的json

我创建了一个演示应用程序来说明这一点

testing.js

$(document).ready(function(){
  $("#order-lookup-submit").on("ajax:success",function(event){
    alert("success");
  }).on("ajax:error",function(event,x,y){
    alert("error");
  });
});
order_lookup.html.haml

= form_tag '/admin/order_lookup.json', remote: true, authenticity_token: true, id: "order-lookup-submit" do 
  = hidden_field_tag "testing", "testing"
  = submit_tag "submit"
控制器

class TestingController < ApplicationController
   def order_lookup
     return render json: {hi: "hi"}
   end
end

您是否尝试将respond_设置为with.json

format.json {render json: @result.to_json}

同样的事情发生了James-更新了答案-应该可以使用.jsonJames-当您提交表单时,页面本身是否发布并显示了JSON?是的,就像literaly一样,它是JSON响应的一个页面。我可以通过从javascript清单中删除//=require jquery_ujs来复制您的问题。您的资产管道中是否有必要的依赖项来进行异步表单请求?
Rails.application.routes.draw do
   root "testing#index"
   post "admin/order_lookup" => "testing#order_lookup"
end
format.json {render json: @result.to_json}