javascript – $.ajax():responseText是正确的但报告错误.为什么?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – $.ajax():responseText是正确的但报告错误.为什么?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1415字,纯文字阅读大概需要3分钟。
内容图文
![javascript – $.ajax():responseText是正确的但报告错误.为什么?](/upload/InfoBanner/zyjiaocheng/721/458e1f9df5b4416d8df796fb5aaf9f68.jpg)
我正试图从我的服务器获取一些JSON数据,如下所示:
var a = $.ajax({
url: "data.json",
dataType: 'json',
data: null,
error: function(data) {
console.log("error");
},
success: function(data) {
console.log("success");
}
});
当我这样做时,调用错误函数(错误被打印到控制台).
但奇怪的是,当我检查一下时,我看到已经返回了正确的响应文本.
一个
readyState: 4
responseText: "contents of data.json!"
status: 200
statusText: "OK"
这是怎么回事?如果请求成功,为什么不成功回调?
解决方法:
可能是因为返回的特定值不是您指定的类型.响应本身是成功的(正如您通过查看“a”的详细信息所看到的那样),但这不是决定是否执行成功或错误的唯一决定因素.您将json指定为“dataType”(返回类型),但收到了一个字符串.对于测试,那很好,但正如你所看到的,事情不会按预期运行.如果您没有指定dataType选项,jQuery将尝试通过查看mime类型和响应内容来确定返回的内容类型.当它们不匹配时(例如在你的情况下)它是一个错误.
更新:
我意识到我在上面的解释中絮絮叨叨.虽然你似乎解决了这个问题,但让我再说一遍.
在您的情况下,有几种错误可能发生.要理解的重要一点是,如果设置“dataType”,jQuery将尝试使用该类型解析responseText.如果您没有设置该选项,它将相应地猜测并解析它(这意味着它将查看MIME类型)并以这种方式解析它.如果指定“dataType”,则responseText需要采用JSON格式.因此,如果您指定“json”,但提供一个字符串(在您的情况下),jQuery解析失败.如果未指定“dataType”和jQuery猜测,则responseText需要与MIME类型匹配.因此,当MIME类型为“application / json”时,您无法返回字符串.当事情不匹配时,那就是错误发生的时候.
希望这有帮助!
内容总结
以上是互联网集市为您收集整理的javascript – $.ajax():responseText是正确的但报告错误.为什么?全部内容,希望文章能够帮你解决javascript – $.ajax():responseText是正确的但报告错误.为什么?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。