AJAX调用后不执行Javascript代码

时间:2013-12-09 13:28:34

标签: javascript jquery ruby-on-rails ruby ajax

这是我的“链接”:

%span{:id => "car_#{car.id}", :onclick => "add_car(#{car.id}"} Add

引导到这里:

function add_trending(car_id) {
  jQuery.ajax({
    url: "/cars/add_car",
    type: "GET",
    data: {"car_id" : car_id},
    dataType: "html"
  });
}
控制器中的

  def add_car   
    @car = Car.find(params[:car_id])
    ...

    respond_to do |format|
      format.js
    end
  end

add_car.js.erb

alert("YES");

但是不会弹出警告窗口。当我看一下日志时,我会看到以下内容:

Rendered cars/add_car.js.erb (0.0ms)

javascript只是渲染,而不是基于日志执行。怎么可能?

由于

2 个答案:

答案 0 :(得分:2)

如果您的ajax请求返回javascript,则必须设置dataType : script或使用$.getScript函数。

在这种情况下,您没有任何成功的回调函数。

答案 1 :(得分:0)

您是否看过您的网络流量客户端?我猜你要把它发送到客户端,但它不知道如何处理这个结果。事实上,如果这是你在jQuery中的整个处理程序,那么它将不会对响应做任何事情。您需要在传递给jQuery.ajax的选项对象中有成功和/或失败处理程序,或者您需要将其附加到它返回的promise。换句话说,你可能正在收回数据但没有用它做任何事情。