当使用AJAX调用API时,网站在打开后重定向到index.php
Site redirects to index.php after being open while making calls to an API using AJAX
我构建了一个站点,该站点使用对外部API的AJAX调用不断刷新数据。由于浏览器的跨域限制,AJAX调用使用JSONP来获取JSON数据字符串。
该网站的功能是在一个更大的监视器上保持开放,这样我们的服务台就可以收到排队的门票数量的通知。该网站在一些不确定的时间内运行良好,通常在30分钟到一小时之间。但由于一些奇怪的原因,它中断并试图重定向到"index.php",而这并不存在。我不确定是什么原因造成的。
我在下面有相关代码。我花了一些时间将其缩小到特定的javascript函数。我花了一些时间在谷歌上寻找答案,但都一无所获。
也许有人对正在发生的事情有一些了解?或者有人知道我可以用什么好的网站监控工具来观察正在发生的事情吗?
需要补充的是,我的AJAX调用的"令牌"部分在我的站点中是有效的,但出于安全目的,我只是在这里清除了它。
HTML
<!DOCTYPE html>
<html>
<head>
<title>WALLBOARD</title>
<link href="Content/style.css" type="text/css" rel="stylesheet">
<script src="Scripts/jquery-1.9.1.min.js" type="text/javascript"></script>
<script src="Scripts/wallboard.js" type="text/javascript"></script>
</head>
<body>
<div id="div_hardware" class="div_normal span6">
<h1>Hardware</h1>
<div id="span_hardwareTickets">-</div>
</div>
<div id="div_atschool" class="div_normal span6">
<h1>AtSchool</h1>
<div id="span_atschoolTickets">-</div>
</div>
<div id="div_network" class="div_normal span3">
<h1>Network</h1>
<div id="span_networkTickets">-</div>
</div>
<div id="div_software" class="div_normal span3">
<h1>Software</h1>
<div id="span_softwareTickets">-</div>
</div>
<div id="div_openTickets" class="span3 div_normal">
<h1>Open Tickets</h1>
<div id="span_openTickets">-</div>
</div>
<div id="div_newTickets" class="span3 div_normal">
<h1>New Tickets</h1>
<div id="span_newTickets">-</div>
</div>
<script>
grabParature();
</script>
</body>
JAVASCRIPT
function grabParature() {
var url = "https://s3.parature.com/api/v1/5406/5426/Ticket";
$.ajax({
url: url,
type: "GET",
dataType: "jsonp",
cache: true,
jsonp : "_callback_",
jsonpCallback: "theData",
data: {
"_status_type_": "open",
"_pageSize_" : "500",
"_output_" : "javascript",
"_token_" : "##################################"
},
success: function (results) {
var openTickets = 0;
var newTickets = 0;
var atschoolTickets = 0;
var hardwareTickets = 0;
var softwareTickets = 0;
var networkTickets = 0;
for(var i = 0; i < results.Entities.Ticket.length; i++)
{
var queue = "";
var status = results.Entities.Ticket[i].Ticket_Status.Status.Name["#text"];
if (results.Entities.Ticket[i].Ticket_Queue != undefined) {
queue = results.Entities.Ticket[i].Ticket_Queue.Queue.Name["#text"];
}
if (status === "Open") {
openTickets++;
}
else if (status === "New") {
newTickets++;
}
if (queue === "Hardware") {
hardwareTickets++;
}
else if (queue === "Atschool") {
atschoolTickets++;
}
else if (queue === "Network") {
networkTickets++;
}
else if (queue === "Software") {
softwareTickets++;
}
}
$('#span_openTickets').html(openTickets);
$('#span_newTickets').html(newTickets);
$('#span_hardwareTickets').html(hardwareTickets);
$('#span_atschoolTickets').html(atschoolTickets);
$('#span_networkTickets').html(networkTickets);
$('#span_softwareTickets').html(softwareTickets);
setInterval(grabParature, 10000);
}
});
};
编辑
根据Ryan Wheale的建议,我将setInterval(grabParature,10000)更改为setTimeout(grabParature,10000。我仍然可以重定向到index.php.
尽量不要设置间隔。您只需要设置Timeout()。这个间隔最终会累积一堆这样的调用,所以在大约30分钟后,我可以看到内存耗尽,因为同时会有大约180个ajax调用。不确定重定向发生的原因-我希望浏览器冻结。。。如果不测试就很难判断。
相关文章:
- 通过javascript重定向html传递php变量
- PHP-如何重定向到同一页面并更改DOM's
- 如何在一页网站中使用PHP重定向到一个页面
- 当达到codeigniter/tank auth会话超时时,在ajax调用中处理php重定向
- 使用GoogleMapApi保存标记-重定向到.php页面
- php中的脚本重定向是递归的
- PHP表单提交和重定向
- 在AJAX调用中获取重定向的php页面名称
- 在php中不运行java脚本的情况下重定向页面
- php重定向到一个空白页面
- 在php中htaccess重定向url后,无法加载css和js
- 用户在文本框中输入一个数字,并根据使用 PHP 输入的数字重定向到另一个网页
- 我的 PHP 网址不会重定向
- 表单处理后 PHP 重定向
- 在 PHP 中创建模式警报而不是页面重定向验证
- 在发布表单输入时,我可以重定向到一个新的php文件吗
- Facebook 登录重定向 PHP/Javascript 不起作用
- 如何重定向PHP登录到登录用户直接进入ASPX网站
- 如何重定向PHP页面与参数到新的选项卡或窗口
- 重定向PHP文件,不管url后面键入什么