关于django中AttributeError: 'NoneType' object has no attribute 'split'的一点解决办法

本文探讨了解决Ajax同步请求导致的用户体验问题,以及如何避免Form表单默认提交引发的AttributeError。通过添加'async':false及event.preventDefault(),确保了代码的正确运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在写网站中遇到一个问题,就是题目上所写的:AttributeError: 'NoneType' object has no attribute 'split' 然后还有这样一行代码:self.status.split(' ',1)[0], self.bytes_sent ,大致意思就是说:返回的值是NoneType,split会报错?这里暂时先放着,不是很熟悉。这个问题困惑了我一天,怎么都想不到办法解决。

网上查到一个方法,因为我是写ajax代码时出现的这个问题,在ajax代码中加上'async' : false,这一行,表示不使用异步。当时有点疑惑,写ajax不就是为了异步吗?试着看能不能解决问题,果然可以。好吧就这样。。。但是浏览器返回了一个建议:“Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user’s experience”,有道翻译就是“不建议在主线程上使用同步XMLHttpRequest,因为它会对最终用户的体验产生有害影响”。

然后写到最后的时候,突然想到,我的js代码是从form表单中获取数据,当提交数据的时候默认的是form表单提交,得阻止默认的form表单提交,不然就会出现题目中的错误。所以js代码中写点击事件的时候,要注意是不是form表单里面提交:

xxxxBtn.click(function (event) {
        event.preventDefault();
        ......
        }

这样就不会报错了。
这个bug之前好像出现过,忘记是什么问题了,记录一下。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值