使用mootools和JsonP我在Firefox错误控制台中出现“无效标签”错误
JsonP似乎有效(我正确获取数据)
{"jsondata":[{"title":"title1","link":"http://xxxx.xxx.xxx","thumbsrc":"http://xxxx.xxx.xxx/17_t.jpg" ,"description":".......","pubDate":"2009-03-09 06:26:00",},{"title":"title2","link":"http://xxxx.xxx.xxx","thumbsrc":"http://xxxx.xxx.xxx/16_t.jpg" ,"description":".......","pubDate":"2009-03-09 06:08:09",}]}
但是我在“jsondata”上得到了无效的标签错误
同一个文件适用于request.json
删除了逗号...没有
这是我正在使用的代码
window.addEvent('domready',function(){
var gallery = $('gallery');
new JsonP('http://myjsoncodeurl',{
onComplete: function(jsonObj) {
addImages(jsonObj.jsondata);
}
}).request();
var addImages = function(images) {
images.each(function(image) {
var el = new Element('div', {'class': 'item'});
var name = new Element('h3').inject(el);
var a1 = new Element('a', {'href': image.link,'html': image.title}).inject(name);
var desc = new Element('span', {'html': image.description}).inject(name, 'after');
var a2 = new Element('a', {'href': image.link}).inject(desc,'after');
var img = new Element('img', {'src': image.thumbsrc}).inject(a2);
el.inject(gallery);
});
};
});
它适用于普通的request.Json,但JSONP不喜欢我的代码:(
答案 0 :(得分:11)
同一个文件很好用 request.json
使用JSONP,您的响应应该返回一个JavaScript函数调用(即回调),其中传入的JSON数据作为参数。如果您的响应是一个普通的旧JSON文本,它将无法在JSONP的上下文中工作。您必须定制后端以接受回调参数并使用JSON数据调用该回调。
答案 1 :(得分:5)
你需要在你的对象周围放置括号(正常的,而不是卷曲的),因为有时候Javascript会非常混乱,并且认为你正在做一个标签语句,这是一种我不知道的语句类型,直到我用Google搜索问题
https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Statements#label_Statement
尝试将您的对象{"jsondata":[ ... ]}
改为({"jsondata":[ ... ]})
。这似乎可以解决它。
答案 2 :(得分:2)
把它放在这里:
显示它的有效,但有额外的逗号(这将是bork IE,虽然FF应该处理它)。如果删除逗号无法解决问题,则需要发布更多代码以帮助我们找到错误。
答案 3 :(得分:0)
这可能是由于日期之后的额外逗号