【问题标题】:Rails JSONP Parsing error on receiving endRails JSONP在接收端解析错误
【发布时间】:2012-07-27 03:14:59
【问题描述】:

我有一个非常具体的问题......

我有 2 个 Rails 应用程序:

  • App 1 向 App 2 发出请求并获得有效的 JSONP 响应。
  • App 2 配备了 Rack JSONP 中间件,因此它返回 正确包装的回调(即JQuery1919191([{[{"find_item":{"geo_lon":-74....等)

由于某种原因,App 1 在 javascript 控制台中抛出以下错误:

JSONP Error: parsererror Error: jQueryXXXXXX was not called

但是,在非 Rails 上下文中测试时,它工作正常。请参阅我的小提琴示例:http://jsfiddle.net/pBDyW/16/ 此代码(在此示例中有效)与我在 Rails 应用程序中使用的代码完全相同。

我感到困惑的是我应该如何配置 App 1(接收应用程序)以正确处理传入的 JSONP 请求。我确信这一定是 Rails 的问题,因为从通用页面调用它,在 Apache 中提供服务,工作正常。

请帮忙!

【问题讨论】:

    标签: ruby-on-rails json jquery jsonp


    【解决方案1】:

    事实证明,rails 应用程序(应用程序 1)处理传入请求的方式(无论出于何种原因)存在细微差别。我修改了我的方法,即在我的控制器中呈现 JSON 响应:

    respond_to :json

    def json_result

    @blah = [stuff from database]

    respond_with @blah

    end

    方法(推荐使用 Rack JSON Middlware 方法,并将我的 JSON 响应恢复到:

    render :json => @find_results, :callback => params[:callback]

    这里的区别很奇怪。只有当我执行这样的响应时,rails app JSONP 调用才会成功:

    success: callbackFunction

    不是

    success: function(){//do stuff}

    但是,后一个示例在 JS fiddle 中有效。奇怪的。我猜这只是 Rails 3+ 中的某种格式差异。

    无论如何,希望这对遇到它的人有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-06
      • 2012-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多