javascript - Rails 渲染 json : {} causing AJAX function to fall into error function

标签 javascript ruby-on-rails ajax coffeescript

我在 Rails 应用程序中无法成功返回 Controller 功能。

$.ajax
    url: '/create_signup'
    type: 'POST'
    dataType : 'json'
    data: { signup: { email: email }}

    success: ->
        # mixpanel
        hideEmailBar()



    error: (data) ->
            console.log data
            console.log "didnt work again"

            alert "There was an error signing you up. Please try again or contact Customer Support."

发布很简单,并且可以在 Controller 中工作到下面的点。 result.code 等于 200,然后 render json: {} 导致 AJAX 调用陷入错误情况。

我知道 head :ok 不起作用,因为 AJAX 调用的 dataTypejson

        result = HTTParty.post(url, options)
        p result.code

        if result.code.to_i == 200
            render json: {}
        else
            raise "Error Signing Up User"
        end

我很乐意帮助找出我在这里做错了什么。谢谢!

最佳答案

看来您的问题可能在于未使用 respond_to block 。在您的代码中,您只是返回一个 JSON 对象,而不指定类型,这是 jQuery 进行 ajax 调用所需要的。响应仍然是 200,它只会显示为 parseError

试一下:

respond_to do |format|
  format.json {
    render json: {}
  }
end

这将响应类型指定为 JSON,这应该可以解决问题。

关于javascript - Rails 渲染 json : {} causing AJAX function to fall into error function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44468023/

相关文章:

ruby-on-rails - 为 Rails 项目生成更好的 ctags 文件

asp.net - 如何在 asp.net 网页中实现 html 表单 - asp.net 中的两种表单问题

javascript - 如何设计放大的ajax弹出窗口的样式

javascript - 将表数组值附加到另一个数组

javascript - 无法在 v-for 选择菜单中渲染数组项

javascript - 数据表:通过 DOM 数据源中的名称引用列

javascript - `this` 和 Javascript 回调中的范围

html - 无法应用 css 样式来管理 gem UI View 以实现响应式

ruby-on-rails - Rails 3 - 具有连接条件的多数据库

javascript - AJAX 数据包含一个或多个单词..?