javascript - 由于浏览器中的长脚本运行错误,ajax 调用抛出不起作用
问题描述
我正在使用 ajax 调用,它在浏览器中抛出“由于正在运行长脚本而没有响应”,并提供了一个停止脚本的按钮。
url 来得很完美,success 函数中的 console.log(4) 甚至没有加载,它只是挂起。
该问题仅在某些情况下发生,仅在其他情况下才有效。我什至比较了数据,数据结构也没有变化。
请帮帮我
$.ajax({
timeout: 3000,
type: "POST",
url: serviceURL,
data: JSON.stringify(apiInput),
contentType: "application/json; charset=utf-8",
dataType: 'json',
success: function (data) {
console.log(4);
if (onsuccess !== null) {
onsuccess(data);
}
},
error: function (x, y, z) {
if (onerror !== null) {
onerror(x, y, z);
}
}
});
解决方案
我不确定您的 Ajax 成功方法的 onsucces 部分在这里试图做什么。
试试这个,看看控制台的错误
$.ajax({
type: "POST",
url: serviceURL,
data: JSON.stringify(apiInput),
contentType: "application/json; charset=utf-8",
success: function (data) {
console.log(data);
},
error: function (x, e) {
if (x.status == 0) {
console.log('You are offline!!\n Please Check Your Network.');
} else if (x.status == 404) {
console.log('Requested URL not found.');
} else if (x.status == 500) {
console.log('Internel Server Error.');
} else if (e == 'parsererror') {
console.log('Error.\nParsing JSON Request failed.');
} else if (e == 'timeout') {
console.log('Request Time out.');
} else {
console.log('Unknow Error.\n' + x.responseText);
}
}
});
我认为您正在尝试检查 API 调用是否成功,Ajax 的工作方式本质上是请求状态,如果请求返回状态为 200(这意味着没问题),那么它将达到成功部分该方法,如果它是一个错误,例如 404(找不到 URL)或 500(内部服务器错误),那么函数的错误部分将被命中,然后只需 console.log 该数据并根据需要查看它。
推荐阅读
- interface - 多个模块可以具有相同的模块类型吗?如何组织它们及其接口文件?
- javascript - Firebase 管理员使用临时下载 url 从存储中获取文件
- multithreading - Julia-Lang UndefVarError: loop_inner 未定义
- python - 如何从时钟进程 Heroku Flask 访问我的 PostgreSQL 数据库?
- dll - 尝试在 opencv4 Visual Studio 2019 中使用 gstreamer 时未发现 gstreamer-1.0-0.dll 错误
- python - SMOTE 关于数组问题的数据框
- python - 为什么 __future__.annotations (PEP 563) 没有向后移植到 python3.6?
- random - 如何随机更改圆圈的颜色?
- ruby - Ruby 可重复使用的地图块
- python - 同一网络架构的两种不同风格的 Tensorflow 实现会导致两种不同的结果和行为?