2013-03-02 141 views
-3

我想通過使用twitter API獲取用戶信息。 jQuery的代碼如下:jquery ajax不工作

<script type="text/javascript"> 
     function GetUser() { 

      $.ajax({ 
       type: "GET", 
       url: "http://api.twitter.com/1/users/show.json?user_id=id&include_entities=true&callback=?", 
       contentType: "application/json; charset=utf-8", 
       dataType: "jsonp", 
       cache:true, 
       timeout:8000, 
       success: function (json) { 
        alert("Successfull"); 
       }, 
       error: function (xhr, ajaxOptions, thrownError) { 
       alert(xhr.responseText); 
       alert(thrownError); 
      }    
      }); 
    } 
    </script> 

xhr.responseText:未定義 thrownError:[對象錯誤] 和HTML代碼:

<input type="submit" value="Submit" onclick="GetUser();" /> 
+1

這似乎是一個聲明,而不是一個問題。 – Barmar 2013-03-02 13:09:22

+0

你有沒有包含jQuery? – 2013-03-02 13:09:51

+0

你有沒有收到任何提醒訊息? – 2013-03-02 13:11:20

回答

1

首先您的網址是不正確的。而不是

user_id=id 

在你的URL中你必須使用id的實際值(id只是佔位符在你的情況下)。例如:

user_id=82193320 

這會給你我的twitter用戶(uwe_guenther)的數據。

您可以輕鬆地查找Twitter的IDS在這裏:

http://mytwitterid.com/

如果你只是想通過網名來查找用戶數據,你可以使用:

​​

代替。

Twitter的API描述,你可以在這裏找到:

https://dev.twitter.com/docs/api/1/get/users/show

我重視的工作示例用於查找由USER_ID SCREEN_NAME和SCREEN_NAME這裏user_id說明:

jsFiddle用下面的例子可以在這裏找到:http://jsfiddle.net/uwe_guenther/EvJBu/

index.html

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 
    <input id='userIdTextField' type='text' placeholder='user_id'/> 
    <input id='userIdSubmitButton' type="submit" value="Submit"/> 
    <div id='screenNameResultView'></div> 
    <br> 
    <input id='screenNameTextField' type='text' placeholder='screen_name'/> 
    <input id='screenNameSubmitButton' type="submit" value="Submit"/> 
    <div id='userIdResultView'></div> 
    <br> 

    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
    <script src='main.js'></script> 
</body> 
</html> 

main.js

$(document).ready(function(){ 

    $('#userIdSubmitButton').click(function(){ 
     var userId = $('#userIdTextField').val(); 
     $.ajax({ 
      type: "GET", 
      url: "http://api.twitter.com/1/users/show.json?user_id=" + userId + "&include_entities=true&callback=?", 
      contentType: "application/json; charset=utf-8", 
      dataType: "jsonp", 
      cache:true, 
      timeout:1000, 
      success: function (json) { 
       alert("Successfull: screen_name=" + json.screen_name); 
       $('#screenNameResultView').text("screen_name=" + json.screen_name); 
       console.log(json); 
      }, 
      error: function() { 
       alert("No Result"); 
      } 
     }); 
    }); 

    $('#screenNameSubmitButton').click(function(){ 
     var screenName = $('#screenNameTextField').val(); 
     $.ajax({ 
      type: "GET", 
      url: "http://api.twitter.com/1/users/show.json?screen_name=" + screenName + "&include_entities=true&callback=?", 
      contentType: "application/json; charset=utf-8", 
      dataType: "jsonp", 
      cache:true, 
      timeout:1000, 
      success: function (json) { 
       alert("Successfull: user_id=" + json.id); 
       $('#userIdResultView').text("user_id=" + json.id); 
       console.log(json); 
      }, 
      error: function() { 
       alert("No Result"); 
      } 
     }); 
    }); 
}); 
0

您的網址是錯誤的

<script type="text/javascript"> 
      function GetUser() { 

       $.ajax({ 
        type: "GET", 
        url: "http://api.twitter.com/1/users/show.json?user_id=id&include_entities=true&callback=?",//this is wrong 
        contentType: "application/json; charset=utf-8", 
        dataType: "jsonp", 
        cache:true, 
        timeout:8000, 
        success: function (json) { 
         alert("Successfull"); 
        }, 
        error: function() { 
         alert("cant search"); 
        }     
       }); 
     } 
     </script> 
+0

是什麼問題? – RockOnGom 2013-03-02 13:23:08

+0

「... user_id = id ...」總是user_id = id,這是字符串,並將字符串ID發送到服務器 – 2013-03-02 13:25:10

0

這裏一個工作例子http://jsfiddle.net/kMgES/

$.ajax({ 
    url: 'http://api.twitter.com/1/users/lookup.json?screen_name=noradio&callback=?', 
    type: 'GET', 
    dataType: 'json', 
    timeout: 8000, 
    success: function (data) { 
     alert(data[0].name); 
    }, 
    error: function() { 
     alert("cant search"); 
    }  
}); 

在此示例中,搜索通過屏幕名稱完成。請看https://dev.twitter.com/docs/api/1/get/users/show以瞭解所有可能的選項。

考慮使用此錯誤handdling

error: function(XMLHttpRequest, textStatus, errorThrown){ 
      // error handling 
     } 
+0

即使此代碼不適用於我。 – RockOnGom 2013-03-02 13:33:00

+0

因爲這是在jsFiddle上工作,所以你的身邊一定有一些錯誤。也許你錯過了jQuery。 – psu 2013-03-02 13:35:54

+0

我用這種方式包含了jquery: RockOnGom 2013-03-02 13:54:58