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 进行了检查,并观察到即使alert("oo") 每 3 秒执行一次,但 ajax 请求永远不会发送。谁能帮我吗。我花了很多时间,但我无法弄清楚。您可以简单地通过 git clone 和“git checkout counternoti”检查代码。 代码只需通过“python2 manage.py runserver”即可运行,无需配置。(输入用户名“123456789”,密码abcd如果您能亲自看到它就好了。在至少,作为一个初学者,这对我来说非常有趣。
My repo -> https://github.com/shadyabhi/pycourt_login/tree/counternoti
urls.py中相关代码:(./urls.py)
(r'^mostrecenttransaction/',mostRecentTransaction),
views.py:(./views.py:第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/home.html:第 282 行)
<script type="text/javascript" src="/pycourt/newordernotification.js"></script>
..
..
<div id=shownoti"></div>
我是 jQuery 和 AJAX 的新手,在我尝试了几个小时解决它之后,这件事让我发疯了。 要点是,如果显示“警报”,那么为什么不显示 AJAX 请求?我们将非常感谢您的回复。
最佳答案
jQuery.ajax({
url: "mostRecentTransaction",
type: "GET",
data: { id : 2008010661301520679 },
success: function(data) {
alert(data);
jQuery('#shownoti').html(data).hide().fadeIn(1500);
}
});
关于javascript - AJAX 请求永远不会发送。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5495143/