Javascript XMLHttpRequest.response是否真的为null
对不存在的数据库元素进行AJAX调用。然后处理程序如下所示:Javascript XMLHttpRequest.response是否真的为null,javascript,ajax,Javascript,Ajax,对不存在的数据库元素进行AJAX调用。然后处理程序如下所示: if (xhr.readyState === 4 && xhr.status === 200 && xhr.response !== null) { console.log('response type is ' + typeof xhr.response); // string console.log('response is ' + xhr.response);
if (xhr.readyState === 4 && xhr.status === 200 && xhr.response !== null) {
console.log('response type is ' + typeof xhr.response); // string
console.log('response is ' + xhr.response); // null
// rest of the handler//
{
问题是,如果我声明仅当响应不为null时才执行,为什么我的处理程序会执行块(它总是转到控制台和日志字符串并为null)?如果它真的是日志记录的话 response type is string response is null 响应类型为字符串 响应为空
…很明显,响应是字符串
“null”
如果它真的在记录
response type is string
response is null
响应类型为字符串
响应为空
…很明显,响应是字符串
“null”
如果它真的说响应类型是字符串
,响应是null
,那么响应显然是字符串“null”。而不是在黑暗中用控制台蹒跚而行。不过,日志
火炬,我建议使用浏览器内置的强大调试器打开指示灯。在该块中设置一个断点,并在代码暂停在断点上时检查xhr.response
的值。同时查看开发人员工具的网络选项卡并检查HTTP响应的原始数据。如果它真的说响应类型为string
并且响应为null
,那么,很明显,响应是字符串“null”
。不过,我建议使用浏览器内置的强大调试器打开指示灯,而不是在黑暗中用控制台.log
手电筒蹒跚而行。在该块中设置断点,并在代码暂停在断点上时检查xhr.response
的值。另外,请查看开发人员工具的“网络”选项卡并检查HTTP响应的原始数据。感谢所有人的反馈,包括上述评论。这让我的JS入门更容易。伊藤:很高兴这有帮助。如果它回答了问题,您应该通过单击旁边的复选标记来“接受”答案。不管你的名声如何,你都可以接受你提出的问题的答案。享受JavaScript带来的乐趣!感谢大家的反馈,包括上述评论。这让我的JS入门更容易。伊藤:很高兴这有帮助。如果它回答了问题,您应该通过单击旁边的复选标记来“接受”答案。不管你的名声如何,你都可以接受你提出的问题的答案。享受JavaScript带来的乐趣!