Запрос AJAX никогда не отправляется. Зачем? - PullRequest
0 голосов
/ 31 марта 2011
var data;

$(document).ready(function(){
var rows = document.getElementById("orderlist_1").rows; var cell = rows[rows.length - 1].cells[3];
data = "id="+cell.innerHTML
checkAndNotify();
})

function checkAndNotify()
{   
    alert("oo");
    $("#shownoti").load("/mostrecenttransaction","id=2008010661301520679");
    t = setTimeout("checkAndNotify()",3000)
    return true;
}

//$(document).ready(checkAndNotify())

В приведенном выше коде окно с контентом отображается каждые 3 секунды, когда я открываю веб-страницу.Но следующая строка как будто никогда не выполняется.Если я вручную открываю URL http://127.0.0.1:8000/mostrecenttransaction/?id=2008010661301520679, он возвращает мне HttpResponse, так почему вызов AJAX никогда не отправляется.

Я проверил, используя Inspect Element из Google Chrome, перейдя на вкладку сети и заметилчто даже если оповещение («oo») выполняется каждые 3 секунды, но ajax-запрос никогда не отправляется.Может кто-нибудь мне помочь.Я потратил так много времени, но я не в состоянии понять это.Вы можете проверить код просто с помощью git clone & "git checkout counternoti". Код может быть запущен просто с помощью "python2 manage.py runserver", без необходимости настройки (введите имя пользователя как "123456789" и пароль как abcd Было бы неплохо, если бы вы могли увидеть его для себя. По крайней мере,Мне чертовски интересно, как новичку.

Мое репо -> https://github.com/shadyabhi/pycourt_login/tree/counternoti

Связанный код в urls.py:(./urls.py)

(r'^mostrecenttransaction/',mostRecentTransaction),

views.py: (./views.py:line 339)

def mostRecentTransaction(request):
    transactid_atdocument = request.GET['id'][7:]
    latestid = Ordersss.objects.latest('transaction_id').transaction_id[7:]
    print latestid, transactid_atdocument
    if latestid > transactid_atdocument:
        return HttpResponse("Food List outdated, please refresh")
    else:
        return HttpResponse("")

templates: (./templates/home.html:line 282)

<script type="text/javascript" src="/pycourt/newordernotification.js"></script>
..
..
<div id=shownoti"></div>

Я новичок в jQuery & AJAX, и эта штука свела меня с ума после того, как я несколько часов пытался ее решить. Суть в том, что если отображается предупреждение, почему нет запроса AJAX? Ответ будет высоко оценен.

Ответы [ 2 ]

4 голосов
/ 31 марта 2011
jQuery.ajax({
    url: "mostRecentTransaction",
    type: "GET",
    data: { id : 2008010661301520679 },
    success: function(data) {
        alert(data);
        jQuery('#shownoti').html(data).hide().fadeIn(1500);
    }
});
0 голосов
/ 31 марта 2011

Попробуйте использовать setInterval вместо setTimeout

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...