【问题标题】:twitter search api with jquery error带有jquery错误的twitter搜索api
【发布时间】:2011-04-29 03:04:02
【问题描述】:

我需要使用 twitter api 使用 jquery 请求 twitter 搜索。看完documentation我写了这段代码:

  $.getJSON("http://search.twitter.com/search.json?callback=myFunction&q=stackoverflow");

   function myFunction(r) {
       console.log(r);
    }

search.json Failed to load resource> 当页面执行时,谷歌浏览器在控制台显示这个错误:

XMLHttpRequest 无法加载 http://search.twitter.com/search.json?callback=myFunction&q=stackoverflow。 原点http://localhost/twitter 不是 允许 访问控制允许来源。 search.json 加载资源失败

有什么问题?

【问题讨论】:

    标签: jquery ajax twitter jsonp


    【解决方案1】:

    只是为了给答案添加更多内容,您可以使用以下代码在每条返回的推文中显示文本。

    $.getJSON("http://search.twitter.com/search.json?callback=?&q=stackoverflow",
    
    function(data){
    
    for (i=0; i<data.results.length; i++){
    
    $("#tweets").append("<p><strong>Text: </strong>" + data.results[i].text + "<BR/>" + "<p><strong>Created at: </strong>" + data.results[i].created_at +"</p><br /><br />");
    
    }
    });
    

    然后在你的 body html 中放入以下 ​​div

    <div id="tweets"></div>
    

    【讨论】:

      【解决方案2】:

      你需要写得有点不同,像这样:

      $.getJSON("http://search.twitter.com/search.json?callback=?&q=stackoverflow", 
        function (r) {
          console.log(r);
      });
      

      为了触发 JSONP,它正在寻找 明确 callback=?,它不在您的命名函数版本中。要使用命名回调,最好使用$.ajax() 完整版:

      $.ajax({
        url: "http://search.twitter.com/search.json?q=stackoverflow",
        dataType: "jsonp",
        jsonpCallback: "myFunction"
      });
      
      function myFunction(r) { console.log(r); }
      

      【讨论】:

      • 我希望有人能更准确地记录这一点,我花了一个小时试图弄清楚为什么我被拒绝访问!
      • Nick Craver(再次)挽救了我的一天:记得使用 jsonp 而不是 json 来表示dataType :)
      • 看起来 Twitter 做了一些改变,导致这个答案不再成立。
      猜你喜欢
      • 2012-10-28
      • 1970-01-01
      • 2020-07-09
      • 1970-01-01
      • 2016-07-26
      • 2011-09-08
      • 2016-09-29
      • 2013-06-04
      • 2017-10-28
      相关资源
      最近更新 更多