二次开发某平台,要加一些功能, 今天遇到个大坑, 我用 ajax 提交后,电脑模拟手机浏览器,成功,到手机提示 undefined 。 返回的是 JSON 。
header('Content-type:application/json;charset='); exit(json_encode(['resCode' => 'success', 'msg' > $data['msg']));
然后用 Ajax 请求
$.ajax({ url : "http://xxx/shop/index.php", type: "POST", data : { act:'pointvoucher', op:'voucherexchange_save', vid:vid, from:'phone' }, success:function(results) { if(results.resCode === 'success') { alert('领取成功。'); } else { alert(results.msg); } } });
按理来说是没有问题的,在电脑用好几个浏览器模拟都是成功的,但是到手机用了好几个浏览器都不行,都提示 undefined 。 第一次遇到这样的问题,搞了半天都不知道原因,求教。
手机: UC 最新版,猎豹,手机自带的 android 4.4
![]() | 1 laoona 2015-10-20 10:58:34 +08:00 打印一下 results ,看看是什么。最好加个:$.ajax({dataType: "json"}); |
![]() | 2 cxe2v 2015-10-20 11:08:01 +08:00 服务器端把收到的请求打印出来对比一下模拟器跟真机的区别不就知道了 |
3 Roope OP |
![]() | 4 domty 2015-10-20 11:18:17 +08:00 1.alert 整个 results ,看看怎么回事 2.换个浏览器试结果,从我仅有的 uc 调试经历来看, uc 的东西比较烂,用起来很麻烦 |
![]() | 5 wesley 2015-10-20 11:38:06 +08:00 uc 会把数据从服务器中转, session 肯定没了 |
6 qaulau 2015-10-20 12:51:40 +08:00 via Android 你需要将 result 这个 json 字符串转换为 js 对象,加上 datatype:"json"或者使用$.parseJSON() |