我使用layout方法在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将文件上传到服务器,请求类型是Synchronous,这意味着渲染布局!响应以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;
答案 0 :(得分: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')));
}
}