为什么这个 Twitter api ajax 请求在 IE7 中不起作用?



代码正常运行;只是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

向您展示了实现它的不同方法。

相关内容

  • 没有找到相关文章

最新更新