rails 2.3.5中jQuery.getJSON中的问题

时间:2010-11-22 06:07:53

标签: jquery ruby-on-rails getjson

我想使用getJSON()方法进行跨域检查我正在使用以下

<script> jQuery.getJSON("http://localhost:3003/home/unique_email/1?email=example@gmail.cmo&callback=result", { format: "jsonp" }, function(result) { alert(result.text) }); </script>

控制器中的

def unique_email
count = User.count(:all, :conditions => ['email = ?',params[:email]] )
result = Hash.new()

if count > 0
  result[:text] = "false"
else
 result[:text] = "true"
end
respond_to do |format|
  format.json {
  render :json => result
  }
end

我在同一个域中收到警报,这意味着我在我的应用程序中收到警报但是在将代码放在一边时,应用程序意味着我没有得到任何错误但是应用程序操作被调用..但我不是从应用程序获得任何响应。

任何帮助将不胜感激。

谢谢&amp;的问候,

Ramanavel Selvaraju。

1 个答案:

答案 0 :(得分:0)

我找到了答案,

Wen需要在应用程序控制器中添加render_json方法。

  private

    # render json, but also allow JSONP and handle that correctly
    def render_json(json, options={})
      callback, variable = params[:callback], params[:variable]
      logger.debug("render json or jsonp? Callback = #{callback}, Variable=#{variable}")
      response = begin
        if callback && variable
          "var #{variable} = #{json};\n#{callback}(#{variable});"
        elsif variable
          "var #{variable} = #{json}"
        elsif callback
          "#{callback}(#{json});"
        else
          json
        end
      end
      render({:content_type => :js, :text => response}.merge(options))
    end

所以我们可以在jQuery ajax中将数据类型作为jsonp。