如何解决$.get 回调函数未执行
我执行了以下简单程序,期望 get 方法的回调函数将执行。但它只会进行 AJAX 调用,不会执行回调函数。由于此返回的数据未显示在警报框中。感谢您的帮助。谢谢
$(function() {
$("#bt1").click(function() {
url = "https://run.mocky.io/v3/5b0c30b2-1069-4640-9bb6-18ceb95c25c4";
$.get(url,function(data) {
alert(data);
});
});
});
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<div id="div1"> This is dummy data </div>
<button id="bt1"> Click here </button>
解决方法
添加一个 fail
处理程序,以便您可以查看 jQuery 报告的错误:
let url = "https://run.mocky.io/v3/5b0c30b2-1069-4640-9bb6-18ceb95c25c4";
$.get(url,function(data) {
alert(data);
}).fail(function(jqXHR,status,error) {
console.log(`error: ${error}`)
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
它说:
错误:语法错误:JSON 中位置 0 处出现意外标记 S
服务器正在报告:
Content-Type: application/json; charset=UTF-8
但是身体:
Sun Jan 3 18:05:31 IST 2021
... 不是 JSON。
更改服务器端代码,使其报告正确的内容类型(可能是 text/plain
)或将数据编码为 JSON。
为了完整起见,我会提到您可以告诉 jQuery 在成功函数之后使用参数覆盖 Content-Type
,但这是绕过问题而不是修复原因,所以我不不推荐。
let url = "https://run.mocky.io/v3/5b0c30b2-1069-4640-9bb6-18ceb95c25c4";
$.get(url,function(data) {
alert(data);
},"text").fail(function(jqXHR,error) {
console.log(`error: ${error}`)
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。