代码正常运行;只是IE7不行。我读到,如果我包括callback=?
来强制JSONP,我可以让它在IE7中工作,但它仍然不起作用。
有什么提示,建议,值得注意的错误吗?
<div id="twitter">
</div>
<script>
$(function(){
$.ajaxSetup({
cache: true,
crossDomain: true,
});
$.getJSON('http://api.twitter.com/1/statuses/user_timeline.json?callback=?&screen_name=bozdoz', function(data) {
$.each(data, function(i, tweet) {
$('#twitter').append('<li>'+tweet.text+'</li>');
});
});
});
</script>
,
更新这是我应该使用的代码。这是在搜索StackOverflow几个小时后编译的。在IE7中运行良好。谢谢所有人。
$.ajax({
url: 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=bozdoz',
dataType: 'jsonp',
cache: false,
crossDomain: true,
contentType: "application/json",
success: function(data){
$.each(data, function(i){
$('#twitter').append('<p>'+this.text+'</p>');
if(i==2) return false;
});
},
error: function(jqXHR, textStatus, errorThrown){
$('#twitter').append('<p>'+jqXHR+" "+textStatus+" "+errorThrown+'</p>');
}
});
尝试设置contentType
$.ajaxSetup({
cache: true,
crossDomain: true,
scriptCharset: "utf-8" ,
contentType: "application/json; charset=utf-8"
});
p。api返回的json没有被jsonlint
验证为有效的json
也总是将&callback=?
附加到URL的末尾
您的代码中有一个额外的
你想要…
$.ajaxSetup({
cache: true,
crossDomain: true
});
试试这个
<div id="twitter">
</div>
<script>
$(function(){
$.ajaxSetup({
cache: true,
crossDomain: true
});
$.getJSON('http://api.twitter.com/1/statuses/user_timeline.json?screen_name=bozdoz&callback=?', function(data) {
$.each(data, function(i) {
$('#twitter').append('<li>'+this.text+'</li>');
});
});
});
</script>
下面是一个工作示例:http://jsfiddle.net/8h2Sv/3
向您展示了实现它的不同方法。