Проблема в jQuery.getJSON в рельсах 2.3.5 - PullRequest
0 голосов
/ 22 ноября 2010

Я хочу использовать метод 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

end

Я получаю оповещение в том же домене, что означает, что я получаю оповещение в своем приложении, но, вынимая код из стороны, приложение означает, что я не получаю никакой ошибки, но действие приложения вызвано .. Но яЯ не получаю никакого ответа от приложения.

Любая помощь будет оценена.

Спасибо и всего наилучшего,

Раманавель Сельвараджу.

1 Ответ

0 голосов
/ 22 ноября 2010

Я нашел ответ для этого,

Нам нужно добавить метод 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

Таким образом, мы можем получить тип данных как jsonp в jQuery ajax.

...