Я думаю, это из-за моего меньшего знания Ajax.
Используя Ajax, я пытаюсь сделать непрерывный аякс-вызов на моем сервере.
Я делаю ademo приложение для обучения.
У меня есть следующий код:
В моей job_status/index.html.erb
<h1>Loading data ......</h1>
<div id = "job-id-container">
Aditya
</div>
<script type="text/javascript">
function tick() {
var ajaxOpts = {
type: "get",
url: "/job_statuses",
dataType: 'json',
data: "status=reload"
};
$.ajax(ajaxOpts);
setTimeout('tick()', 1000);
}
$(document).ready(function() {
tick();
});
</script>
В моей job_statuses_controller
class JobStatusesController < ApplicationController
def index
@job = JobStatus.last
end
end
В моем index.js.erb
$('#job-id-container').append("<%= @job.message %>")
В моей консоли браузера я получаю ответ 304 и его не обновляю данные на моей странице.
Скажите, где я ошибаюсь, и предлагаю правильный код.
Лично не проверенный, попробуйте smth вот так:
<script>
function repeat_ajax_call(){
$.get("/job_statuses", function(data){
console.log(data);
$('#job-id-container').append(data.message);
}, 'json');
}
$(repeat_ajax_call);
$(document).on("turbolinks:load", repeat_ajax_call);
</script>
контроллер:
def index
@job = JobStatus.last
respond_to do |format|
format.html { @job }
format.json { render json: json_format(@job) }
#OR
format.json { render json: {data: @job}}
end
end
у меня есть
dataType: 'json'
который был за исключением данных в json, и я хочу визуализировать скрипт. устранение этой строки устранило проблему.