0

加载失败 -- 参数:[Object api=Object,Object request=Object reader=Object scope=Object,Object tId=0 status=200 statusText=OK,SyntaxError:missing } after property list message=missing } after property list]

我通过向我的商店添加异常而得到该错误,但在我的代码中没有看到任何真正的错误......也许另一双眼睛会有所帮助。

php:

 case 'messages':
                    if(isset($_SESSION['id'])){
            $stmt = $dbh->prepare("Select ID, ReceivedAt, Message from SystemEvents Limit 100");
                            $stmt->execute();

            while($tmp = $stmt->fetch()){
                $y .= '{"ID":"'.$tmp['ID'].'","ReceivedAt":"'.$tmp['ReceivedAt'].'","Message":"'.$tmp['Message'].'"},';
            }
            $y = trim($y,',');
            if(isset($_REQUEST['callback'])){
                echo $_REQUEST['callback'].'({"dates":['.$y.']});';
            }else{
                echo '{"dates":['.$y.']}';
            }
        }else{
            if(isset($_REQUEST['callback'])){
                                    echo $_REQUEST['callback'].'({success: false, data{"error_title": "Error", "errormsg": "Cannot display dates"}})';
                            }
                            else{
                                    echo '{success: false, data{"error_title": "Error", "errormsg": "Cannot display dates"}}';
                            }
                    }
            break;

分机:

Ext.onReady(函数(){

var logStore = new Ext.data.JsonStore({
    autoLoad: true,
    url: 'inc/interface/config.php?list=messages',
    root: 'dates',
    idProperty: 'ID',
    fields: ['ID', 'ReceivedAt', 'Message'],
    listeners: {
                loadexception: function() {
                    console.log('load failed -- arguments: %o', arguments);
                }
        }
}); 

var dateStore = new Ext.data.JsonStore({
    autoLoad: true,
    url: 'inc/interface/config.php?list=date_options',
    root: 'dates',
    idProperty: 'ID',
    fields: ['ID', 'ReceivedAt'],
    listeners: {
                loadexception: function() {
                    console.log('load failed -- arguments: %o', arguments);
                }
        }
});

var dateSelect = new Ext.form.DateField({
    fieldLabel: 'Pick a date',
    width: 190,
    align: 'center',
    frame: true
});

var dateCombo = new Ext.form.ComboBox({
    store: dateStore,
    mode: 'local',
    valueField: 'ID',
    displayField: 'ReceivedAt',
    editable: false,
    emptyText: 'Select a Date',
    width: 250,
    listeners:{
        activate: function(){
            dateStore.reload();
        }
    }
});

var searchField = new Ext.form.TextField({
    fieldLabel: 'Search Criteria',
    emptyText: 'Search....',
    width: 190, 
    frame: true

});

var searchButton = new Ext.Button({
    text: 'Search',
});

var clearButton = new Ext.Button({
    text: 'Clear',
    tooltip: 'Clears all your search data'
});

var searchPanel = new Ext.Panel({
    layout: 'form',
    region: 'east',
    width: 300,
    collapsible: true,
    alignButton: 'right',
    title: "Search Panel",
    items: [dateSelect, dateCombo, searchField],
    buttons: [clearButton, searchButton]
});


var logGrid = new Ext.grid.GridPanel({
    region: 'center',
    store: logStore,
    colModel: new Ext.grid.ColumnModel({
        columns: [{
            id: 'received',
            header: 'Received',
            dataIndex: 'ReceivedAt',
            width: 250
        },{
            id: 'message',
            header: 'Logs',
            dataIndex: 'Message',
            width: 750
        }]
    }),
});


var mainViewport = new Ext.Viewport({
    layout: 'border',
    items: [logGrid, searchPanel]
});

});

我不认为发布我的 php 的其余部分是相关的,因为这一切都有效,但希望有人能发现我的坏眼睛无法发现的东西。

4

2 回答 2

2

我在这里看到一个额外的逗号:

var searchButton = new Ext.Button({
    text: 'Search',
});

也在 LogGrid 上。可能就是这样

编辑:如果有错误,从 PHP 发回的响应看起来不是有效的 JSONdata{"error_title"是错误的,应该是data:{"error_titel"

你真的应该看看在 PHP 中构建对象/数组并使用 json_encode 来回显这些,而不是手动构建 JSON。

于 2010-07-13T17:55:38.683 回答
0

顺便说一句:要查找杂散逗号,我使用以下模式进行搜索:

\,\s*(}|])

这可以节省大量时间,特别是因为不同的浏览器比其他浏览器更健壮,不会出现逗号错误。

于 2010-07-14T01:11:51.303 回答