我正在使用Opencart 2.0.2.0。在此之前我使用的是Opencart 1.5.6.4。我的代码如下,
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/onepagecheckout/address.tpl')) {
$this->template = $this->config->get('config_template') . '/template/onepagecheckout/address.tpl';
} else {
$this->template = 'default/template/onepagecheckout/address.tpl';
}
$json['hasshipping'] = $this->cart->hasShipping();
$json['output'] = $this->render();
$this->response->setOutput($this->model_onepagecheckout_checkout->jsonencode($json));
这很好用。我在结帐页面上得到它,然后我通过json['output']
呈现HTML。但在Opencart 2.0.2.0
我不能这样做。
我的代码如下
$json['hasshipping'] = $this->cart->hasShipping();
$json['output'] = $this->response->setOutput($this->load->view('default/template/onepagecheckout/address.tpl', $data));
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput($this->model_onepagecheckout_checkout->jsonencode($json));
我在控制台中将其作为HTML获取。我还在我的ajax代码中检查了dataType
是JSON
。我该如何解决呢。谢谢!
修改
以下是1.5.6.4版本的响应快照
以下是版本2.0.2.0的响应图像
答案 0 :(得分:0)
只需要在将视图加载到json结果时删除$ this-> response-> setOutput。
所以代码看起来像这样:
$json['hasshipping'] = $this->cart->hasShipping();
$json['output'] = $this->load->view('default/template/onepagecheckout/address.tpl', $data);
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));