2013-12-09 2 views
0

Это моя "ссылка":код Javascript не выполняется после того, как 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 просто оказывается, не выполняется на основе журналов. Как это возможно?

Thanks

+0

Вы можете показать отчетный ответ от файла ajax? –

ответ

2

Если ваш запрос ajax возвращает javascript, вы должны установить dataType : script или использовать функцию $.getScript.

В этом случае у вас нет функции обратного вызова с успехом.

0

Вы посмотрели на свой сетевой трафик на стороне клиента? Я предполагаю, что вы отправляете это клиенту, но он не знает, что делать с этим результатом. На самом деле, если это ваш весь обработчик в jQuery, тогда он ничего не сделает с ответом. Вам нужен успешный и/или обработчик ошибок в объекте параметров, переданном jQuery.ajax, или вам нужно прикрепить его к обещанию, которое оно возвращает. Другими словами, вы, вероятно, возвращаете данные, но ничего не делаете с ним.

Смежные вопросы