欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

die(json_encode(. 没有返回

程序员文章站 2022-05-23 13:38:00
...
die(json_encode(... 没返回
我的ajax代码

$.post('{:U("Safeinfo/txpassadd")}', $("#txadd").serialize(), function(data) {
alert("ok"); ...


php代码:

tip("100", '交易密码不能与登录密码一样!');



function tip($code, $msg) {
$arr['code'] = iconv('GB2312', 'UTF-8', $code);
$arr['msg'] = iconv('GB2312', 'UTF-8', $msg);

//die(json_encode($arr));
die(var_json_encode($arr)); //cjq
}

function var_json_encode($var){
$_var = var_urlencode($var);
$_str = json_encode($_var);
return urldecode($_str);
}


结果页面没有弹出那个alert("ok"),说明ajax没返回?

改成这样也不行:

function tip($code, $msg) {
$arr['code'] = iconv('GB2312', 'UTF-8', $code);
$arr['msg'] = iconv('GB2312', 'UTF-8', $msg);

die(json_encode($arr,JSON_UNESCAPED_UNICODE)); //cjq
}


这是为什么呢?
------解决思路----------------------
safeinfo-txpassadd.html 经 url 重写后实际执行的是
SafeinfoAction::txpassadd 方法
其中用到 tip 函数,不知你是如何定义的

你那 $.post 方法有 json 声明,所以 tip 函数应输出 json 格式串
而 $.post 的回调函数的参数 data 已被解析成 js 对象了
你再 var data1=eval("("+data+")"); 就有蛇足了,应去掉
------解决思路----------------------
你得先把你php代码调试好才行
------解决思路----------------------
tip 函数应写成这样
function tip($code, $msg) {
$arr['code'] = iconv('GB2312', 'UTF-8', $code);
$arr['msg'] = iconv('GB2312', 'UTF-8', $msg);

die(json_encode($arr));
// die(var_json_encode($arr)); //cjq
}

对于 tip("100", '交易密码不能与登录密码一样!');
得 {"code":"100","msg":"\u4ea4\u6613\u5bc6\u7801\u4e0d\u80fd\u4e0e\u767b\u5f55\u5bc6\u7801\u4e00\u6837\uff01"}
如果写成
function tip($code, $msg) {
$arr['code'] = iconv('GB2312', 'UTF-8', $code);
$arr['msg'] = iconv('GB2312', 'UTF-8', $msg);

// die(json_encode($arr));
die(var_json_encode($arr)); //cjq
}

则 tip("100", '交易密码不能与登录密码一样!');
得 {"code":"100","msg":""