如何修复/调试间歇性返回500个错误的AJAX脚本
How to fix/debug AJAX script that is intermittenly returning 500 errors
我有一个AJAX脚本,在我的网站上下单后,我用它来实现一些数据库魔术。
以下是我在订单确认页面上引用它的方式:
<script>
// I define my function
function voucherRedeem(str) {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("confirmation").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","redeemvoucher.php?order="+str,true);
xmlhttp.send();
}
// This grabs the order number in the confirmation field.
var finisher = jQuery('div.col-main p a:first').text();
// This executes the function.
voucherRedeem(finisher);
</script>
我有一些案例,剧本确实有效,但我看到了500个。其他时候我看到500,但没有结果。最终,我不希望有500人。这是一个有大量资源的临时服务器,所以我预计不会出现网络或CPU问题。
我在Firebug中看到的错误:
GET http://www.website.com/redeemvoucher.php?order=123456 500 Internal Server Error 1.33s
我可以为这个JS函数或文档设置延迟吗?准备好了吗?再说一遍,我真的不确定发生了什么。
我认为您的PHP有错误。
要捕捉它,请尝试使用以下内容(在redeemvoucher.php
顶部):
function myErrorHandler($errno, $errstr, $errfile, $errline) {
echo $errno."'n".$errstr."'n".$errfile."'n".$errline;
}
function myFatalErrorShutdownHandler() {
$last_error = error_get_last();
if ($last_error['type']===E_ERROR) {
myErrorHandler(E_ERROR, $last_error['message'], $last_error['file'], $last_error['line']);
}
}
set_error_handler('myErrorHandler');
register_shutdown_function('myFatalErrorShutdownHandler');
不要依赖w3schools.com上的例子——人们普遍认为它们不可靠,维护不善。相反,只需使用$.get
来做艰苦的工作:
$.get('redeemvoucher.php',{'order':str})
.done(function(data) {
/* code you put in here will run after the AJAX returns successfully */
}).fail(function() {
/* code you put in here will run after the PHP script returns an error */
});
http://api.jquery.com/category/ajax
相关文章:
- VB NET JQUERY AJAX上出现错误500
- 从javascript调用asmx服务时出现错误500
- POST encodeURI查询字符串内部服务器错误 500
- 铬错误:- 6个图表.js/图表新.js
- 我需要帮助查找我的JavaScript小游戏中的错误(三个我没有得到的错误)
- getJSON:网络错误:500 内部服务器错误
- 我的联系表格在测试/PHPMailer后给了我一个内部服务器错误(500)
- 使用AJAX发送表单时出现错误500
- JQUERY AJAX 发布错误 500 知道吗?我正在尝试将记录插入其中
- 使用 ajax 作为注释表单,它给了我 500 个内部错误,但没有脚本它可以工作,这意味着我的脚本是错误的;对
- 在尝试将插入值从javascript调用到Visual Studio中的sql服务器时,收到内部服务器错误500
- 如何修复/调试间歇性返回500个错误的AJAX脚本
- 基本的PayPal结帐按钮在Firefox中给出了500个内部服务器错误
- 当与AJAX一起使用时,PHP eval生成500个错误
- Meteor方法成功更新了数据库,但向Meteor.call返回500个错误
- 只在我的ubuntu服务器上从soundcloud api接收500个错误
- 在Rails中使用ajax/will_paginate获得500个内部服务器错误
- Mongodb/mongoose只保存一次,然后创建500个错误
- 在Joomla网站上使用javascript重定向时出现500个错误
- 如何处理500个错误