【发布时间】:2012-10-07 20:03:31
【问题描述】:
我在解析来自 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 控制台中遇到的错误是: 类型错误:a 为空
但它说错误位于我的“jquery-1.7.1.min.js”文件第 2 行。
我也尝试在 jsfiddle 中玩弄这个,这个设置不会向<span></span> 写入任何内容:
但是这个设置可以:
这是否意味着 twitter api 中存在导致其显示为无效 json 格式的内容?
编辑: 我仍然有同样的问题,但我想添加它以防它可能有帮助。
Jquery 是由它到达 $.parseJSON() 行的时间定义的,因为我尝试在该行之前和之后添加 jquery 代码。所以问题肯定出在 twitter 的 api 返回的内容上。但我很难相信他们给了我无效的 json 格式数据。那么在使用 $.parseJSON() 之前我需要对结果做些什么吗?
【问题讨论】: