2015-06-28 18:30:59 7137次浏览 1条回答 0 悬赏 10 金钱
//这里是controller action
public function actionGetTopic($module){
    if(Yii::$app->request->isAjax){
        $topic = Arrayhelper::map( ModuleChild::getChilds($module,true) ,'child','child');
        Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
        return empty($topic) ? [$module=>$module] : $topic;
    }
}
//js代码如下
$.ajax({
    url : "?r=foumn/get-topic",
    type : 'get',
    data : {module:$(this).val()},
    success : function(r){

    },
    error : function(r){
        console.log(r);
    }
});
//response value always :  <?php{"module_announce":"module_announce"}
//就是无端端 多了 <?php json数据就不正确了,所以老是触发error,没触发到success

第一次ajax给yii2,没想到就出问题,发觉guide中好像好少这方面ajax的内容(yii\web\Response)
希望能帮我解决一下,随便说说yii中是如何处理ajax业务的。(有什么相关资料?)
非常感谢。

  • 回答于 2015-06-28 21:28 举报

    是不是有的地方多打印<?php了?

    2 条回复
    回复于 2015-06-28 21:53 回复

    解决了,没有多打符号,终于在backend 和 frontend中发现不一样的地方,md
    config文件夹中的两个文件
    bootstrap.php的内容是

    <?php 
    

    其中一个是

    <?php没有空格了,就是输入行贴紧<?php|,而另一个就是输入行没贴紧,换言之就是要有\n或空格。
    

    不信的话你可以试试,将bootstrap的的内容删除,重新输入<?php 不要换行,且贴紧最后一个字符。
    就会出现相同的错误。(我用的是sublime3编辑器)
    不知道算不算是bug

    回复于 2015-06-29 07:48 回复

    ok

    觉得很赞
您需要登录后才可以回答。登录 | 立即注册
jackz
主管

jackz

注册时间:2015-06-10
最后登录:2018-08-02
在线时长:10小时6分
  • 粉丝6
  • 金钱255
  • 威望30
  • 积分655

热门问题