最近在做dojo开发,遇到一个莫名其妙的问题:
SyntaxError: missing ] after element list
Stack trace:
.cache["dojo/_base/json"]/</dojo.fromJson@file:///C:/Lily/work/MDM%20Project/workspace/EV4BPM/resources/dojo/dojo.js:15:145120
.showSearchResult/<@file:///C:/Lily/work/MDM%20Project/workspace/EV4BPM/resources/viewer/search/SearchWrapperPane.js:212:11
乍一看是代码缺失了右方括号,并且提示出了具体的行,源码如下:
request(urls,{
headers: {
"X-Requested-With": null
},
method: "GET",
handleAs: "json"
}).then(function(response){
VIEWERUtil.hideStandbyAnimation(controller.domNode);
self.debug(response);
var responseResult = new Object();
responseResult = dojo.fromJson(response); (212行)
......
}
}
responseResult = dojo.fromJson(response);就是第212行,很显然并没有缺失任何括号,但是用firebug查看response的输出会发现,它已经是Object对象了,那么再执行dojo.fromJson(response)的时候就会出现上述的报错。修改办法有两种:
1,handleAs: "json"改成handleAs: "text/json"或者handleAs: "text"
2,去掉responseResult = dojo.fromJson(response);
在dojo的官方使用文档中dojo.fromJson的用法如下:
http://dojotoolkit.org/reference-guide/1.7/dojo/fromJson.html