ajax.html<a id="addr_modify"><img src="images/dify.jpg"/></a>ajax.js$('#addr_modify').click(function(){ $.ajax({ type: "POST", url: "ajax.php", cache: false, data: "&m=" + Math.random(), beforeSend:function(){$('#addr_modify').html('[获取中...]')}, success:function(data){ re = $.evalJSON(data); alert(re.message); } })});ajax.phprequire('cls_json.php');$json = new JSON;$result = array('error' => 0, 'message' => '', 'content' => '');$result['message'] = '已接收请继续';echo $json->encode($result);按照道理会跳出框 “已接收请继续'”;为什么页面上没有任何反应。。。。。只是单纯的 dify.jpg 换成 获取中.....
我觉得应当是这个地方错误了:data:"&m="+Math.random(),可以尝试改成data:"?m="+Math.random()或者data:{m:Math.random()}因为你前面没有提供其他参数,你那样写就是提交的路径位ajax.php&m=随机数,而正确的表示方法应当是ajax.php?m=随机数,所以根本无法完成提交其实你这里可以省略data的设置,因为cache:false本身实现的效果就是在传递的参数末尾加随机数值来实现禁用缓存
分析: success:function(data){ re = $.evalJSON(data); alert(re.message); }1. 不知道$.evalJSON这个方法名与否正确;2. 是不是你的ajax.php里面没有POST方法体呢?3. 在$.ajax请求中,可以设置返回数据的类型,dataType:"json"就是返回json格式的数据,'text'就是返回文本。 --------------------------------------------------------------var re = $.parseJSON(data);alert(re.message);