我在JS中遇到以下错误: SyntaxError:意外的令牌<在位置0的JSON中
如何通过JSON正确发送HTML代码(整个页面)。 我没有提出这个想法,但这是我试图安装的插件,我收到了这个错误。所以如果有人能指出我这里有什么问题以及如何解决它,那就太好了。谢谢。
public function ajaxfilter()
{
$this->registry->set('bf_force_tmp_table_creation', true);
$data = $this->_prepareFilterInitialData();
$json = array();
$route = $this->_getRequestParam('curRoute');
if ($route && $this->_getRequestParam('withContent')) {
$this->request->get['route'] = $route;
$this->load->controller($route, $data);
$json['products'] = $this->response->getOutput();
}
$this->load->model('module/brainyfilter');
$model = new ModelModuleBrainyFilter($this->registry);
$model->setData($data);
if ((bool)$this->_getRequestParam('count', false)) {
$json['brainyfilter'] = $model->calculateTotals();
}
if ((bool)$this->_getRequestParam('price', false)) {
$minMax = $model->getMinMaxCategoryPrice();
$min = floor($this->currency->format($minMax['min'], $this->_currency, '', false));
$max = ceil($this->currency->format($minMax['max'], $this->_currency, '', false));
$json['min'] = $min;
$json['max'] = $max;
}
$this->log->debug($json);
$isMijoShop = class_exists('MijoShop') && defined('JPATH_MIJOSHOP_OC');
if ($isMijoShop) {
header('Content-Type: application/json');
die(json_encode($json));
} else {
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
}
}
答案 0 :(得分:0)
使用json_encode
获取有效的JSON字符串。
您可以对任何标量值,数组和stdClass
实例进行编码。对于任何其他类,您可以实现JsonSerializable
接口。
一个简单的HTML示例:
<?php
$html = '<div class="container">What-Ever-Content </div>";
echo json_encode($html);
这将产生此输出:
"<div class=\"container\">What-Ever-Content </div>"