异步请求数据,返回值带有小红点(实际上是返回格式错误或者缓存区被占用)

ajax请求,返回值格式:json,返回的格式不是严格的json格式

浏览器返回的数据:response里面的字符串输出的前面带有一个红点,因为这个红点,页面上不会执行相关逻辑

示例:

$.post('请求地址',{参数key:参数value},function (res) {

//TODO相关逻辑

},'json');

$.ge t('请求地址',function (res) {

//TODO相关逻辑

},'json');

获取数据后后续操作不执行,F12也不报错,查看返回值,也是正常的,不明所以

解决方案:

  1. 查看返回值的格式是否正确

  1. 查看缓存区是否被占用(被占用的标志之一:返回值带有小红点)

相关:

ob_clean() - 清空(擦掉)输出缓冲区

ob_end_clean() - 清空(擦除)缓冲区并关闭输出缓冲

详细说明一下原因:

在php的默认配置下,php输出是先输出到缓冲区(output_buffering,内存区域),然后输送到浏览器。不过只要数据还没有真正发送到浏览器(严格来说是tcp buffer),那么是可以通过内置的ob_clean函数进行清空的。

ob_clean()刷新缓冲区,但保留输出缓冲活动。这意味着您的readfile()输出也将被缓冲。

ob_end_clean()刷新缓冲区,并完全关闭缓冲区,允许readfile()直接转储到浏览器

ob_clean 只是清空当前缓冲区的数据,如果先前输出的数据大于缓冲区,那么一部分数据已经发送,发送的这部分数据是无法清空的。另外如果禁用php输出缓冲区,那么 ob_clean 会起不到任何效果的。

所以需要抑制输出(忽略掉前面所有的输出)也就是说前面那的输出将不会输出到浏览器,所以即json格式错误并且没有输出到浏览器,就不会报错了

注意点:

本地环境和线上环境有区别,注意函数的使用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值