thinkphp+ajax ,返回的是""

HTML部分:控制器部分:浏览器:... HTML部分:

控制器部分:

浏览器:
展开
 我来答
shgtdaicooper
2016-05-10 · 超过66用户采纳过TA的回答
知道小有建树答主
回答量:131
采纳率:100%
帮助的人:82.4万
展开全部
你的this->ajaxReturn返回的第二个参数错了。下面是thinkphp的ajaxReturn方法说明,你看一下。
/**
* Ajax方式返回数据到客户端
* @access protected
* @param mixed $data 要返回的数据
* @param String $type AJAX返回数据格式
* @param int $json_option 传递给json_encode的option参数
* @return void
*/
protected function ajaxReturn($data,$type='',$json_option=0) {
if(empty($type)) $type = C('DEFAULT_AJAX_RETURN');
switch (strtoupper($type)){
case 'JSON' :
// 返回JSON数据格式到客户端 包含状态信息
header('Content-Type:application/json; charset=utf-8');
exit(json_encode($data,$json_option));
case 'XML' :
// 返回xml格式数据
header('Content-Type:text/xml; charset=utf-8');
exit(xml_encode($data));
case 'JSONP':
// 返回JSON数据格式到客户端 包含状态信息
header('Content-Type:application/json; charset=utf-8');
$handler = isset($_GET[C('VAR_JSONP_HANDLER')]) ? $_GET[C('VAR_JSONP_HANDLER')] : C('DEFAULT_JSONP_HANDLER');
exit($handler.'('.json_encode($data,$json_option).');');
case 'EVAL' :
// 返回可执行的js脚本
header('Content-Type:text/html; charset=utf-8');
exit($data);
default :
// 用于扩展其他返回格式数据
Hook::listen('ajax_return',$data);
}
}
更多追问追答
追问

先谢谢了!!!!!!@@@@@@@@@@!!!!!!!!!!!!!

我把$this->ajaxReturn()的第二个参数设置成了json,可以打印出if(json.status==1)的结果(ok)


但是,浏览器给的参数依然是空

我怎么样可以讲json.title打印在页面上

大神在吗?求解答呀 又+20了

追答
你在返回端对ajax返回过来json的数据要使用eval()函数,转换为jquery上下文的环境变量。
ajax里的success对json的处理:
success:function(json){
var data = eval(json);

var title = data['title'];

var content=data['content'];

}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式