Rails UJS Ajax 或 JSON Ajax 没有效果

shaunli · 2015年03月19日 · 最后由 shaunli 回复于 2015年03月19日 · 2004 次阅读

看了官方文档和网上的资料,尝试写个 ujs 的例子,大致流程是这样: 用户点击按钮 -> 发送 post 请求给后端 -> 后端返回 js 模板 -> 前端执行 js 模板

但是在发送 ajax 请求的时候,似乎没有起作用,浏览器的调试器中找不到任何 post 请求,网页也没有任何变化,不知道是为什么。 跟踪 javascript 发现确实执行了 ajax,但是为什么随后就没音儿了呢?

这是分离的 CoffeeScript:

$ ->
  $(".my-test").click ->
    console.log("This is a test from coffeescript")
    $.ajax
    type: "POST"
    url: "queries/select"
    dataType: "js"
    data:
      message: "I am a message"
    error: (jqXHR, textStatus, errorThrown) ->
      console.log("AJAX Error: #{textStatus}")
    success: (data, textStatus, jqXHR) ->
      console.log("Successful AJAX call: #{data}")

已经指定了路由: queries_select POST /queries/select(.:format) queries#select_house

在 QueriesController 中对应的 response:

def select_house
  respond_to do |format|
    format.js
  end
end

这是待返回的 js.erb 模板:(就一句)

console.log("Javascript template is here");

就算不用 UJS 而改成 JSON Ajax(指定 Ajax 的 dataType 为 JSON,在 respond_to 里添加 json 类型)依然没有任何效果。 不知道问题出在了哪里哇😢

$.ajax
type: "POST"

缩进不对。

#1 楼 @Rei 原来是这样,调整缩进之后果然有反应了。非常感谢😄

需要 登录 后方可回复, 如果你还没有账号请 注册新账号