如何从控制器发送JSON响应jQuery和检查呢?(How to send json respons

2019-07-31 13:18发布

我有这样的问题:我检查用户的电子邮件在控制器和发送JSON响应全成,如果它已经被占用,并添加输入的CSS样式,我也需要防止提交,并添加一些消息。

这里是我的checkemail行动(用这篇文章- http://paydrotalks.com/posts/45-standard-json-response-for-rails-and-jquery ):

def checkemail
  if !User.where('email = ?', params[:email]).empty?
    format.jsonr do
      render :json => { 
        :status => :ok, 
        :message => "Success!",
      }.to_json
    end
  end
end

在我的路线:

         checkemail GET    /checkemail(.:format)

          match "/checkemail", to: 'edit_user#checkemail'

和我的jQuery:

   $('#user_email').focusout(function() {
    $.getJSON('/checkemail', { email: $('#user_email').val() }, function(data) {
        $('#user_email').addClass("error");
      });
   });

我的HTML的输入代码:

     <input id="user_email" name="user[email]" size="30" type="email" value="">

从MIME_TYPE初始化文件:

    Mime::Type.register_alias "application/json", :jsonr, %w( text/x-json )

从小提琴手:

  Request : GET /checkemail?user@mail.com HTTP/2.0

  Response(RAW tab) : 
  Missing template edit_user/checkemail

  JSON tab is empty

问题:JSON请求是如何检查发送? 如何防止提交表单,并添加一些消息?

Answer 1:

为什么format.jsonr ? 似乎是一个错字给我。



文章来源: How to send json response from controller to jQuery and inspect it?