我在从Twitter api解析jsonP请求时遇到问题。
我的代码如下:
var processRequest = function(data){
console.log(data); //outputs what I believe to be correct
var result = $.parseJSON(data);
var text = '';
console.log("1");//outputs
$.each(result, function(){
console.log("2");// doesn't output
text = this['created_at'];
});
console.log(text);//doesn't output
}
$(document).ready(function () {
var url = "https://api.twitter.com/1/statuses/user_timeline.json?include_entities=0&include_rts=0&screen_name=DockersHamptons&count=1&callback=processRequest";
$.ajax({
type: "GET",
url:url,
dataType: 'jsonp',
data: {},
success: function (data){
if(typeof(data.error) != 'undefined') {
if(data.error != ''){
//Shouldn't hit here
}
} else {
//Shouldn't hit here.
}
}
});
});
我在firebug控制台中遇到的错误是: TypeError:a为null
但它说错误位于第2行的“jquery-1.7.1.min.js”文件中。
我也试过在jsfiddle中玩这个,这个设置没有写任何内容到<span></span>
:
但是这个设置确实如此:
这是否意味着twitter api中存在导致其以无效的json格式出现的内容?
编辑: 我仍然遇到同样的问题,但我想补充它以防它可能有所帮助。
Jquery是通过$ .parseJSON()命中行来定义的,因为我尝试在该行之前和之后添加jquery代码。所以问题肯定在于twitter的api返回的内容。但我发现很难相信他们给了我无效的json格式化数据。那么在使用$ .parseJSON()之前我必须对结果做些什么?
答案 0 :(得分:0)
我在其他网站上找到了解决方案。我的问题是twitter api已经返回一个格式良好的json字符串。所以我只需要删除使用$ .parseJSON()。
var processRequest = function(data){
var text = '';
$.each(data, function(){
text = this['text'];
});
$("#twitter_update_list").html("<li>"+text+"</li>");
}