Ajax失败5%的时间,响应是“错误”
Ajax fails 5% of time, response is "error"
我使用jQuery来处理ajax调用。我注意到,大约5%的ajax调用失败。为了确保我很好地理解出了什么问题,我使用以下代码:
$.ajax({
type:'POST',
url:'somepage.php',
data:{somedata:somedata},
success:function (data) {
var IS_JSON = true;
try
{
var newdata = jQuery.parseJSON(data);
}
catch(err)
{
IS_JSON = false;
}
if(IS_JSON)
{
//this is the part where a correct response is handled
}
else
{
//In case somepage.php gives a php-error, I put the exact error (=data) in the error-table at error.php.
window.location = "error.php?errorstring="+data;
}
},
error:function (XMLHttpRequest, textStatus, errorThrown) {
//In case the ajax errors, I store the response (timeout, error, ...) in the database at error.php
window.location = "error.php?errorstring="+textStatus;
}
});
"Good"响应包含JSON,我将对其进行解析。如果它不是JSON(例如php错误的原始文本),我不会尝试解析它,而是将错误存储在我的数据库中。
我可以理解在somepage.php上发生的包含php错误的错误(因为它是一个大页面),但我惊讶的是,我得到的主要错误是ajax失败的错误。响应数据为"error".
有人知道原因是什么吗?是什么导致ajax调用失败?它是而不是超时,也不像somepage.php找不到之类的。在somepage.php上也不是错误,因为在这种情况下,ajax调用将成功,并且php错误将记录在我的数据库中。
编辑:我使用这个混淆器使脚本更难阅读…
您应该在ajax调用中设置dataType: 'json'
。因为如果你没有设置这个,并且你期望一个json结果,结果将默认被视为'string'。
相关文章:
- 有没有任何方法可以从javascript进行跨域请求,并访问它可能生成的错误响应类型(401404等)
- 来自next()的Later.js错误响应
- 错误响应上的X-Frame-Options标头
- 无法将节点邮件程序错误响应从节点.js发送到角度.js
- 如何禁用基于 ajax 错误响应的元素
- 无法让模拟后端返回错误响应
- iOS Firefox XMLHttpRequest 错误响应
- 错误:调用 waitForCondition 时错误响应状态:13
- 添加对 jquery .submit() 的回调以读取上传的错误响应
- 为什么我的FB.api请求总是产生错误响应
- 如何在Jquery POST中获得HTTP错误响应代码?
- Javascript在读取cakephp发送的json服务器错误响应后表示未定义
- 如何在Angular上静默http错误响应
- 如何从PHP创建jqGrid JSON错误响应,然后使用jqGrid javascript对其进行响应?
- Javascript http get success函数捕获错误响应
- 在rails控制器中发回ajax错误响应
- 身份工具箱不工作-错误代码:IDP的错误响应
- 铁形式的错误响应体
- 如何在Ajax中获得错误响应
- 如何在ember js操作中获得龙卷风错误响应