使用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",}]}
Run Code Online (Sandbox Code Playgroud)
但我在"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);
});
};
Run Code Online (Sandbox Code Playgroud)
});
它适用于普通的request.Json,但JSONP不喜欢我的代码:(
Ate*_*ral 11
同一个文件适用于request.json
使用JSONP,您的响应应该返回一个JavaScript函数调用(即回调),其中传入的JSON数据作为参数.如果您的响应是一个普通的旧JSON文本,它将无法在JSONP的上下文中工作.您必须定制后端以接受回调参数并使用JSON数据调用该回调.
你需要在你的对象周围放置括号(正常的,而不是卷曲的),因为有时Javascript会非常混乱,并且认为你正在做一个标签语句,这是一种我不知道的语句类型,直到我用Google搜索这个问题.
https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Statements#label_Statement
尝试通过你的对象 {"jsondata":[ ... ]},作为 ({"jsondata":[ ... ]})代替.这似乎可以解决它.