0

我正在通过 JSONP 检索列表的信息,并在控制台浏览器中收到以下错误:“意外令牌:”

我的店铺:

Ext.define ('Projeto.store.Mural', {
 extend 'Ext.data.Store'
 requires: [
     'Projeto.model.Mural'
 ]

 config: {
     autoLoad: true,
     model: 'Projeto.model.Mural'
     storeId 'MuralStore'
     Proxy {
         type: 'jsonp'
         url: 'http://URL/mural'
         reader: {
             type: 'json',
             rootProperty: 'rows'
         }
     }
 }
});

我的列表:

Ext.define ('Projeto.view.MuralList', {
 extend 'Ext.dataview.List'
 alias: 'widget.murallist'

 config: {
     loadingText: 'Loading ...',
     store: 'MuralStore'
     itemTpl: [
         '<div> Message: {message} </ div>
     ]
 }
 });

JSON 返回我的 URL:

{
 "rows": [
     {
         "lookup": "yyyy"
         "dateTime", "10/10/1970"
         "id": "1",
         "message": "yyyy"
     }
     {
         "lookup": "dsdfasfsadf"
         "dateTime", "15/05/2012"
         "id": "2",
         "message": "dsdfasfsadf"
     }
 ]
 }

有谁知道为什么会出错,因为 JSON 格式有效。

谢谢你。

4

4 回答 4

0

由于您将其请求为jsonp,而不仅仅是json,因此它希望您的 json 包含在回调函数中。就像是:

callback({
 "rows": [
     {
         "lookup": "yyyy"
         "dateTime", "10/10/1970"
         "id": "1",
         "message": "yyyy"
     }
     {
         "lookup": "dsdfasfsadf"
         "dateTime", "15/05/2012"
         "id": "2",
         "message": "dsdfasfsadf"
     }
 ]
 })
于 2012-09-05T14:48:19.410 回答
0

我的猜测是您正在访问的服务返回 JSON 而不是JSONP。在 jsonp 标记中搜索“意外令牌”。您会发现例如为什么这个 JSONP 提要会抛出“Unexpected Token”错误?

于 2012-04-27T00:57:04.707 回答
0

您在中间缺少一个逗号:

{
 "rows": [
     {
         "lookup": "yyyy"
         "dateTime", "10/10/1970"
         "id": "1",
         "message": "yyyy"
     },
     {
         "lookup": "dsdfasfsadf"
         "dateTime", "15/05/2012"
         "id": "2",
         "message": "dsdfasfsadf"
     }
 ]
}
于 2012-04-26T18:06:00.043 回答
0

':'首先,你在很多地方都不见了,','在陈述的结尾也不见了。:在属性值之前和,语句结束时使用总是好的做法。

像这样,

 ...  
 ...  
 requires: [
     'Projeto.model.Mural'
 ],

 config: {
     autoLoad: true,
     model: 'Projeto.model.Mural',
     storeId: 'MuralStore',
     proxy : {
        type:'jsonp',
     },
 ....
 ....

其次,发生此错误是因为您的响应不是 VALID jsonp 响应。

当我检查jsonplint.com时,它向我显示了这个错误

Invalid JSONP
No callback function defined
Improper or no closing
  1. 所以,要么你需要确保你定义了一个有效的回调函数。

  2. 否则,你可以做一件事。更改type:'jsonp'totype:'ajax'应该可以解决您的问题,而无需更改其他任何内容。

于 2012-04-27T02:39:30.323 回答