javascript - Joomla 2.5组件从外部脚本获取json

标签 javascript json joomla

我将从外部脚本 javascript 获取一个 json(从数据库查询生成)。

我的模型:

<?php
defined('_JEXEC') or die();

jimport( 'joomla.application.component.modelList' );


class MediastoreModelList extends JModelList
{
    function getListQuery()
    {
        $db = JFactory::getDBO();
        $query = $db->getQuery(true);
        $query->select('id, type, designation', 'marque', 'prix');
        $query->from('produits');
        return $query;
    }
}

我的 Controller :

<?PHP
defined('_JEXEC') or die('Restricted access');

jimport('joomla.application.component.controller');

class MediastoreController extends JController
{   
    public function getJson() {
        $model = getModel();
        $data = $model.getListQuery();
        $document = JFactory::getDocument();
    $document->setMimeEncoding('application/json');
    JResponse::setHeader('Content-Disposition','attachment;filename="result.json"');
    echo json_encode($data);
    }
}

我的 JavaScript:

$.getJSON( "http://mediastore.dev/index.php?option=com_mediastore&task=getJson", function(data) {
    console.log(data);
});

但是 getJSON 失败。 怎么了 ?

谢谢

最佳答案

您的 Controller 代码将引发 PHP 错误。它必须看起来像:

public function getJson() {
    $model = $this->getModel();
    $data = $model->getItems();
    $document = JFactory::getDocument();
    $document->setMimeEncoding('application/json');
    echo json_encode($data);
    JFactory::getApplication()->close();
}

尝试将 Controller 操作设置为小写。我还会在 ajax 调用中将 $ 替换为 jQuery 。 要查看 ajax 调用的响应中实际内容,我建议使用 firebug 或 chrome 开发者控制台,它将显示整个响应,然后您将很快找到问题所在。

关于javascript - Joomla 2.5组件从外部脚本获取json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22173632/

相关文章:

javascript - 为什么比较结果不一样?

sql - 如何更新 jsonb 对象中嵌套数组内的值?

php - 使用第一个文本框输入自动填充第二个文本框

javascript - 使用特殊字符时,服务器响应会奇怪地进行编码/解码

php - 网页生成(类似 CMS)

javascript - Node.js socket.io 的 Dojox 套接字异常

javascript - 如何用webpack生成多个html文件?

javascript - jquery:如何忽略直接children()并深入直到匹配指定元素?

当其他菜单项悬停时,CSS 菜单隐藏当前子菜单

joomla - 只显示文章内容