0

我正在使用布局方法在 CI 框架中呈现我的模板,如果请求是 AJAX,我会在停止呈现布局的链接上添加一些修改

if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {

   return;

  } else {
      //render the layout (the code from example in the link)
 }

我面临的问题是我正在使用 AjaxFileUpload 将文件上传到服务器,请求类型是同步的,这意味着渲染布局!响应返回为 json + HTML,这是布局条件的正常流程,如果在上传文件时请求是同步的,我应该怎么做才能防止呈现布局。

这是js

$.ajaxFileUpload({
url : url ",
secureuri :false,
fileElementId :'imageFile',
dataType : 'json',
type: "POST",

success : function (data)
{
  console.log(data);

},
error: function (request, status, error) { 

}
});

这里是我从服务器返回的

 echo json_encode(array('status' => $status, 'msg' => $msg));
 return;
4

1 回答 1

0

只是将 null 传递给您的布局变量的简单解决方案

class Welcome extends CI_Controller {

    public $layout = 'default';

    public function index()
    {
        $this->load->view('welcome_message');
    }

   public function ajax_call()
    {
        $this->layout = null;
       echo json_encode(array('status' => $status, 'msg' => $msg));
       // you can use this but your layout should be null
       $this->output
    ->set_content_type('application/json')
    ->set_output(json_encode(array('foo' => 'bar')));
    }
}
于 2013-01-08T08:11:12.307 回答