我在Expression Engine中创建了一个模块(使用codeigniter框架构建)。
我正在使用AJAX提交表单,并希望返回JSON响应。
表单是通过AJAX正确提交的,我已经测试了它添加到不同代码的数据库等。
作为JSON响应的一些测试代码,我设置了以下内容:
public function placeItem() {
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
}
使用:
var options = {
success: update,
url: 'http://www.domain.com/index.php?ACT=41'
};
function update(json) {
alert(json);
}
$('#wishlist-form').submit(function() {
$(this).ajaxSubmit(options);
return false;
});
这是重新发布的:
"a":1,"b":2,"c":3,"d":4,"e":5}<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: Warning</p>
<p>Message: Cannot modify header information - headers already sent by (output started at /var/sites/d/domain.com/public_html/system/expressionengine/third_party/wishlist/mod.wishlist.php:77)</p>
<p>Filename: core/Common.php</p>
<p>Line Number: 408</p>
</div>
第77行是:echo json_encode($ arr);
首先,我无法弄清楚PHP错误显示的原因。 其次,JSON在警报中返回,但是如果我尝试执行json.a,例如它显示'undefined'。
答案 0 :(得分:0)
嗨试试这个来设置json输出
$this->output
->set_content_type('application/json')
->set_output(json_encode(array('foo' => 'bar')));