这是我的“链接”:
%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只是渲染,而不是基于日志执行。怎么可能?
由于
答案 0 :(得分:2)
如果您的ajax请求返回javascript,则必须设置dataType : script
或使用$.getScript
函数。
在这种情况下,您没有任何成功的回调函数。
答案 1 :(得分:0)
您是否看过您的网络流量客户端?我猜你要把它发送到客户端,但它不知道如何处理这个结果。事实上,如果这是你在jQuery中的整个处理程序,那么它将不会对响应做任何事情。您需要在传递给jQuery.ajax
的选项对象中有成功和/或失败处理程序,或者您需要将其附加到它返回的promise。换句话说,你可能正在收回数据但没有用它做任何事情。