永远不会发送AJAX请求。为什么?

时间:2011-03-31 03:53:26

标签: javascript jquery ajax django

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检查了网页标签&观察到即使每隔3秒执行一次警报(“oo”),也不会发送ajax请求。谁能帮我吗。我花了很多时间,但我无法弄清楚。您只需通过git clone& amp; “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:(。/ template / home.html:line 282)

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

我是jQuery&amp;的新手经过几个小时的努力解决后,AJAX和这件事让我发疯了。 重点是,如果显示“警告”,那么为什么不是AJAX请求?答复将受到高度赞赏。

2 个答案:

答案 0 :(得分:4)

jQuery.ajax({
    url: "mostRecentTransaction",
    type: "GET",
    data: { id : 2008010661301520679 },
    success: function(data) {
        alert(data);
        jQuery('#shownoti').html(data).hide().fadeIn(1500);
    }
});

答案 1 :(得分:0)

尝试使用setInterval而不是setTimeout