You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ajax解析PHP文件返回的JSON数据时控制台输出为空问题求助

问题原因
  1. 重复解析JSON报错
    你在$.ajax配置中已经指定了dataType: "json",jQuery会自动将后端返回的JSON字符串转换为JavaScript对象,此时success回调的入参data已经是对象类型。再调用$.parseJSON(data)相当于对非字符串类型做JSON解析,会抛出语法异常,导致控制台无预期输出。
  2. PHP语法错误
    你给出的PHP代码起始标签为<php,正确的PHP起始标签是<?php,缺少问号会导致PHP代码不被服务器解析,直接将代码原样返回,不符合JSON格式要求。
  3. 字符转码异常
    你对$end_result做了iconv('Windows-1252', 'UTF-8', $end_result)转码操作,如果服务器端该变量的原始编码不是Windows-1252,转码会返回空值,破坏返回的JSON结构。
解决方案
  • 调整Ajax的success回调逻辑,删除手动JSON解析代码,直接使用已解析的data对象:
success: function(data){  
    console.log(data);
    // 取对应字段直接用 data.date / data.result / data.medias / data.country 即可
}
  • 修正PHP代码起始标签,将开头的<php替换为<?php。
  • 确认$end_result的原始编码,如果本身为UTF-8,直接删除iconv转码逻辑,避免转码失败:
'result' => $end_result,
  • 临时添加Ajax的error回调,快速定位请求阶段的异常:
$.ajax({ 
    type: 'post',
    url: "t.php",  
    data: { styles: style2 , country: radio_btn},
    dataType: "json",
    success: function(data){  
        console.log(data);
    },
    // 新增错误回调排查问题
    error: function(xhr, errorMsg){
        console.log("请求异常:", errorMsg, "返回原始内容:", xhr.responseText);
    }
})

内容的提问来源于stack exchange,提问作者Alev Mustafa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 23:36:03