2

我正在学习使用 $.ajax、jsonp 和 twitter API 的教程。

不幸的是,该示例适用于除 IE 之外的所有浏览器。当我尝试将 twitter URL ( http://search.twitter.com/search.json?q=bowery ) 加载到 IE 浏览器中时,IE 会尝试下载该文件。

我试图通过 在dataType: 'jsonp'下添加contentType: 'text/plain'以及 contentType: 'text/html'contentType: 'text/javascript'来解决这个问题,但这些变体都没有奏效. 以前有没有人解决过这个 jsonp + IE + $.ajax 问题?

github 上的教程代码:https ://github.com/troyth/webassite.com/blob/master/tutorials/tutorial4/index.html 。

Javascript:

<script src="http://code.jquery.com/jquery-1.9.0.min.js"></script>
<script type="text/javascript">
  $(document).ready(function() {
    console.log('doc ready!');

      var search_term = {
        q: 'harrypotter'
      };
      search(search_term);
    });

  function search(search_term) {
    $.ajax({
      url: 'http://search.twitter.com/search.json?' + $.param(search_term),
      dataType: 'jsonp',
      success: function(data) {
        for (item in data['results']) {
          $('#tweets').append(
            '<li>' + data['results'][item]['text'] + '</li>');
        }
      }
    });
  }

HTML:

    <ol id="tweets"></ol>
4

1 回答 1

2

似乎循环和访问对象存在问题,这对我有用:

$(document).ready(function () {
    var search_term = {
        q: 'harrypotter'
    };
    search(search_term);
});

function search(search_term) {
    $.ajax({
        url: 'http://search.twitter.com/search.json',
        data: search_term,
        dataType: 'jsonp'
    }).done(function (data) {
        $.each(data['results'], function (k, v) {
            $('#tweets').append('<li>' + v.text + '</li>');
        });
    });
}

小提琴

于 2013-06-04T03:20:29.230 回答