Rails 2.3.5 中 jQuery.getJSON 的问题

发布于 2024-10-03 20:43:24 字数 805 浏览 2 评论 0原文

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

在控制器

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

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

任何帮助将不胜感激。

谢谢&问候,

拉马纳维尔·塞尔瓦拉朱。

I want to use the getJSON() method for cross domain check i am using the following

<script>
jQuery.getJSON("http://localhost:3003/home/unique_email/[email protected]&callback=result",
{
format: "jsonp"
},
function(result) {
alert(result.text)
});
</script>

in the controller

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

I am getting alert in the same domain, which means that i am getting alert in my application but while putting the code out side the application means i am not getting any Error but the application action is called .. But i am not getting any response from the application.

Any help will be appreciated.

Thanks & regards,

Ramanavel Selvaraju.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

仅此而已 2024-10-10 20:43:24

我找到了答案,

需要在应用程序控制器中添加 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 形式的数据类型。

I found Answer for this ,

Wen need to add the render_json method in application controller.

  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

So the we can get the dattype as jsonp in jQuery ajax.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文