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

PHP/Apache/Nginx

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的格式要求严格了。