如何使ajax失败可见
How to make ajax failures visible?
我使用一个小库来进行ajax调用。我希望函数在输入不存在的url时抛出错误。
当前,它无声地失败,并简单地返回响应文本的未定义。这使得排除一般故障更加困难。
是否有简单的方法来做到这一点?
/**************************************************************************************************
AJAX
*/
// specify type/url/callback in passed object
Pub.ajax = function (config_ajax) {
var xhr = new win.XMLHttpRequest();
// get
if (config_ajax.type === 'get') {
xhr.open('GET', config_ajax.url, true);
xhr.onload = function () {
if (this.status === 200) {
config_ajax.callback(xhr.responseText);
}
};
xhr.send(null);
}
// post
if (config_ajax.type === 'post') {
xhr.open("POST", config_ajax.url, true);
xhr.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");
xhr.onload = function () {
if (this.status === 200) {
config_ajax.callback(xhr.responseText);
}
};
xhr.send(config_ajax.data);
}
// post for form_data
if (config_ajax.type === 'multi') {
xhr.open("POST", config_ajax.url, true);
xhr.onload = function () {
if (this.status === 200) {
config_ajax.callback(xhr.responseText);
}
};
xhr.send(config_ajax.data);
}
};
我假设你不能使用jQuery $。Ajax有一个。success和。error。
您可能需要根据调用的内容和服务器的响应方式使其更加健壮。
if (this.status === 200) {
config_ajax.callback(xhr.responseText);
} else if (console) {
console.error("ajax call failed"
}
try this
**************************************************************************************************
AJAX
*/
// specify type/url/callback in passed object
Pub.ajax = function (config_ajax) {
var xhr = new win.XMLHttpRequest();
// get
if (config_ajax.type === 'get') {
xhr.open('GET', config_ajax.url, true);
xhr.onload = function () {
if (this.status === 200) {
config_ajax.callback(xhr.responseText);
}
};
xhr.send(null);
}
// post
if (config_ajax.type === 'post') {
xhr.open("POST", config_ajax.url, true);
xhr.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");
xhr.onload = function () {
if (this.status === 200) {
config_ajax.callback(xhr.responseText);
}
};
xhr.send(config_ajax.data);
}
// post for form_data
if (config_ajax.type === 'multi') {
xhr.open("POST", config_ajax.url, true);
xhr.onload = function () {
if (this.status === 200) {
config_ajax.callback(xhr.responseText);
}
};
xhr.send(config_ajax.data);
}
// when the ready state changes check for success or failure
xhr.onreadystatechange=function(){
if (xhr.readyState==4 && xhr.status==200)
{
//Success
alert('success');
}else{
//Failure
alert('Failure');
}
}
};
相关文章:
- 带有对象解析的响应javascript ajax失败
- 一台特定计算机的Ajax请求数据未定义/失败
- Backbone fetch中的Ajax在fetch调用退出后完成,因此fetch调用中没有成功/失败事件
- jquery Ajax没有;不要显示任何信息(既不显示成功也不显示失败)
- $.ajax调用失败,dataType为json
- Ajax错误检查-如果Ajax请求失败,如何防止内容发生更改
- Android/Chrome jQuery AJAX请求在到达服务器之前失败,并出现parserror
- postmates api的AJAX中的HTTP身份验证失败
- Ajax调用PHP失败,ASP正常工作.NET
- 由于adblock,Javascript Ajax请求在chrome中失败,我有什么选择
- AJAX 回调在 Firefox 中失败
- 使用 插入 AJAX 失败
- AJAX 请求不会在 400 个错误查询上执行失败
- 如何阻止 jQuery.ajax() 将失败记录到控制台
- 来自 Object 内部的 Jquery Ajax 调用立即失败
- 无需重新加载即可播放MySQL结果.AJAX 正在失败
- Ajax GET 请求的 URL 失败,但 hurl.it 相同 URL 的 GET 请求有效.什么给
- Jsonresult在我的Ajax调用中使用参数失败.为什么会发生这种事
- RubyonRails ajax发布失败
- 如何使用承诺获取失败ajax请求的URI