提问人:garyshackle 提问时间:4/12/2021 最后编辑:garyshackle 更新时间:4/13/2021 访问量:46
$.get 不是一个函数,不推荐使用主线程上的同步 XMLHttpRequest
$.get is not a function, Synchronous XMLHttpRequest on the main thread is deprecated
问:
我正在为我正在构建的网页编写 JavaScript。我成功地使用了以下(简化)代码:
$('#selector').on('click', function () {
if (isTrue) {
if (isTrue) {
}
else {
// execute block of code 'A', which is similar to 'B'
callAjax(url, function() {
// do some things...
})
}
}
else {
// execute block of code 'B', which is similar to 'A'
callAjax(url, function() {
// do some things...
})
}
});
/**************************
* Call Ajax
**************************/
function callAjax(url, callback) {
$.get(
url,
function(data) {
callback();
}
)
}
但是,我想通过模块化来改进代码,如下所示:
$('#selector').on('click', function () {
if (isTrue) {
if (isTrue) {
}
else {
handler(objects);
}
}
else {
handler(objects);
}
});
/**************************
* Handler
**************************/
function handler(objects) {
callAjax(url, function() {
// do some things...
})
}
/**************************
* Call Ajax
**************************/
function callAjax(url, callback) {
$.get(
url,
function(data) {
callback();
}
)
}
每当我运行第二组代码时,它都会抛出“主线程上的同步 XMLHttpRequest 已弃用”警告。后续运行代码会抛出“$.get is not a function”错误,并且代码会在调用 handler() 后立即停止运行。
我不是在引用 JavaScript 的精简版本。
为什么会抛出这些错误和警告,我怎样才能以我所描述的方式成功地简化我的代码?
编辑:
为了更加清晰并回答我到目前为止的评论,以下是我在网页底部标签中包含的脚本:<body></body>
<script src="https://code.jquery.com/jquery-3.2.1.min.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
我想我也应该包括这个。它引用了我正在编写的 .js 文件。
<script src="script.js"></script>
答:
0赞
garyshackle
4/12/2021
#1
在检查了我的代码并参考了以下链接中的帖子后:
JavaScript 控制台 .log 导致错误:“主线程上的同步 XMLHttpRequest 已弃用...”
我意识到我的代码中有一个错误。我向ajax请求传递了一个“未定义”的url,而不是我所期望的字符串路径。
评论