> 文章列表 > php无法返回标准JSON格式,导致的$.ajax返回的数据无法执行success的解决方案

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

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

php

//返回信息

$arr_ret = array("code"=>"1","msg"=>"数据已经保存成功!");

echo json_encode($arr_ret);

js:

$.ajax({

        type: "POST",

        url: "./workpost.php",

        async:false,

        timeout:6000,

        contentType: "application/json;charset=utf-8",   

        data: insertstr,

       dateType: "text",      // "json"会跑到error函数

        success:function(msg){

            var msgjson = eval("(" + msg + ")");//关键位置,我也是从网上查的。

            console.log(msgjson);

            if(msgjson.code=="1"){

                alert("提交成功: \\n" + msgjson.msg);        

                return 1;

            }else{

                alert("提交数据时发生了错误: \\n" +msgjson.msg);

            }

        },

        error:function (msg) {

            alert("提交失败");

            return -1;

        }

    }); 

注:在2019年写的旧项目可能因为用的jquery版本低,msg是可以直接是一个json对象直接可以使用 if(msg.code=="1")的。之前php返回也不会到error函数去。归根结底是jquery版本对json的格式要求严格了。