php无法返回json格式怎么办

php无法返回json格式的解决办法:1、判断error的具体原因,执行“var a=JSON.stringify(error);alert(a);”代码;2、修改php代码,执行“var b= eval(“(” + data + “)”);”代码即可。

php无法返回json格式怎么办

本教程操作环境:Windows10系统、PHP8.1版、DELL G3电脑

php无法返回json格式怎么办?

php无法返回标准JSON格式:导致的$.ajax返回的数据无法执行success的解决方案

JSON的标准格式:{“键”:“值”,“键”:“值”}

立即学习“PHP免费学习笔记(深入)”;

一、前端提交代码,如下

$.ajax({                type: "post",                url: "index.php?m=Index&a=accessIn&act=access",                async: true,                data: {                    login_access: $('#login_access').val()                },                dataType: "text",                success: function (data) {                    if (data.codeId == "0") {                        alert(data.err);                    } else {                       alert(data.err);                      window.location.href = "index.php?m=Index&a=lockData";                    }                },                error:function(error){                    var a=JSON.stringify(error);                    alert(a);                }});

登录后复制

二、PHP后台处理后,返回代码:

            $res['err']    = "欢迎您";            $res['codeId'] = "1";

登录后复制

console.log(data),可知为:{err:“输入密码错误!”,codeId:“0”},代码键无双引号,非标准JSON格式,会导致$.ajax返回的数据无法执行success。

三、分析如下:

判断error的具体原因,因返回的是[object object]对象格式,需要转为字符串格式,以便快速的查找原因:

var a=JSON.stringify(error); alert(a);

登录后复制

如果是格式不正确的话,基本上返回的错误代码为:readyState=4,status=200。

一是修改php代码,直接返回标准的JSON格式,因漏刻有时数据可视化代码格式化的原因,本例采用返回前端进行解决;
返回类型为:dataType: “text”,
返回后格式为:{“err”:“输入密码错误!”,“codeId”:“0”},进行typeof(),可知为string格式,需要将字符串转化为JSON,采用eval函数:

eval() 函数用来执行一个字符串表达式,并返回表达式的值 ——来源于菜鸟教程

var b= eval("(" + data + ")");//一定按照该格式才是标准的JSON格式

登录后复制

完整的前端提交和返回代码:

$.ajax({                type: "post",                url: "index.php?m=Index&a=accessIn&act=access",                async: true,                data: {                    login_access: $('#login_access').val()                },                dataType: "text",                success: function (data) {                    var b= eval("(" + data + ")");//string 2 json                    if (b.codeId == "0") {//读取键值进行判断                        alert(b.err);                    } else {                       alert(b.err);                      window.location.href = "index.php?m=Index&a=lockData";//跳转页面;                    }                },                error:function(error){                    var a=JSON.stringify(error);//解析对象为字符串,快速确定原因;                    alert(a);                }});

登录后复制

Done!

推荐学习:《PHP视频教程》

以上就是php无法返回json格式怎么办的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2072440.html

(0)
上一篇 2025年2月24日 08:04:50
下一篇 2025年2月21日 16:08:00

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • linux怎么使用yum安装php

    linux使用yum安装php的方法:1、执行“mkdir /usr/local/php”命令;2、下载yum源的更新安装包;3、安装相关yum源安装包;4、通过“yum install”命令安装php即可。 本教程操作环境:centos7…

    2025年2月24日
    200
  • 所需的php xsl模块未安装怎么办

    所需的php xsl模块未安装的解决办法:1、打开命令窗口,执行“cd /data/soft/php-5.2.4”;2、通过“make intall php -i|more cd /usr/local/lib vim php.ini php…

    2025年2月24日
    200
  • php怎么实现日期转礼拜几

    php实现日期转礼拜几的方法:1、创建一个php示例文件;2、通过“date(“l”);”方法获取英文星期几;3、定义一个数组,然后通过“$weekarray[date(“w”,time())…

    2025年2月24日
    200
  • php中get方式可以传数组吗

    可以。URL是可传递关联数组,也可传递下标数组;而PHP中可以利用http_build_query()函数来通过get方式在URL中传递数组。http_build_query()用于从关联(或索引)数组生成URL编码的查询字符串,语法“ht…

    2025年2月24日
    200
  • php define有什么用

    在php中,define()函数用于定义一个常量,语法“define($name, $value , $case_insensitive)”;参数“$case_insensitive”用于指定常量是否大小写敏感,默认是大小写敏感的,值设定为…

    2025年2月24日
    200
  • php 错误级别种类有哪些

    php错误级别种类:1、解析错误或语法错误,这种错误会停止程序的执行,并显示出错信息;2、致命错误;3、警告错误,是指程序的语法没有错误,但在执行的过程中,发现程序有些不合理的地方,从而提示出警告信息,而程序会继续向下执行;4、注意错误,类…

    2025年2月24日 编程技术
    200
  • php中cli和cgi运行模式有什么区别

    区别:CLI指的是命令行的运行模式,即在控制台或者是shell中键入命令执行PHP脚本代码;而CGI是公共网关接口的运行模式,就是Apache在遇到PHP脚本的时候会将PHP程序提交给CGI应用程序(php-cgi.exe)解释,解释之后的…

    2025年2月24日
    200
  • php怎么将值强制转为数值类型

    强制转换方法:1、在数据之前加上用括号括起来的目标类型“(int)”或“(float)”,可以将值转为整数类型或浮点型,例如“(int)$str”、“(float)$str”;2、使用intval()函数,可以将值转为整数类型,语法“int…

    2025年2月24日 编程技术
    200
  • PHP_EOL什么意思

    PHP_EOL是一个已经定义好的变量,代表php的换行符,这个变量会根据平台而变,在windows下会是“/r/n”,在linux下是“/n”,在mac下是“/r”。一般可以使用“str_replace(PHP_EOL,”,字符…

    2025年2月24日
    200
  • php怎么查询文件目录是否存在

    查询方法:1、使用is_file()函数,可判断指定文件是否存在并且检查是否是正常的文件,语法“is_file($file)”;2、使用file_exists()函数,可判断指定文件是否存在或者指定目录是否存在,语法“file_exists…

    2025年2月24日 编程技术
    200

发表回复

登录后才能评论