Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
yiiajax返回html页面_Html_Ajax_Yii - Fatal编程技术网

yiiajax返回html页面

yiiajax返回html页面,html,ajax,yii,Html,Ajax,Yii,那里!我在从ajax查询接收数据方面遇到问题。它返回页面的html代码 我的ajax代码 $.ajax({ url: 'index.php?r=site/page&view=mail', type: 'post', data: {action: 'smtp_save', smtp_login: login, smtp_password: password, smtp_server: server, smtp_port

那里!我在从ajax查询接收数据方面遇到问题。它返回页面的html代码

我的ajax代码

         $.ajax({
         url: 'index.php?r=site/page&view=mail',
         type: 'post',
         data: {action: 'smtp_save', smtp_login: login, smtp_password: password, smtp_server: server, smtp_port: port },
         success: function($output) {
            //debug message
         alert($output);          
         }
         })             
Php,仅用于测试

if(isset($_POST['action']) && !empty($_POST['action'])) 
{ 
   echo 'test'; 

}

你期待什么?当然,它返回HTML。如果您没有特别设置返回数据类型,它将尝试猜测dattatype。 由于您只输出“test”,所以它当然是HTML。 如果您想要JSON,您应该做两件事:

  • 使用
    dataType:'JSON'
  • 使用此php代码:
    echo json\u encode('test')
  • 如果您在controler/action中完成所有这些,那么您应该添加
    Yii::app()->end()
    
    回显
    之后,否则Yii将呈现整个页面输出。通过这种方式,你只会得到你回显出来的内容

    尝试从你的代码中删除
    数据类型:“html”
    ,或者将其更改为你需要的数据类型:'json'不起作用,只是忘了从代码中删除它。设置数据类型是否必要?@Rakeshhetty-可能不需要它,但这样更安全,所以你100%确定你得到了json@GONGOTA-如果答案有效,请接受。谢谢