使用带有jquery的ajax检查是否存在twitter用户名

时间:2012-09-14 13:12:22

标签: jquery ajax twitter

我正在编写一段代码来检查你在文本框中写的内容是否是一个有效的用户名,使用jQuery和Ajax我然后看看这个页面是否存在 - http://api.twitter.com/1/users/show/value.xml - 如果它不存在存在我写的“这个推特帐户不存在”。

这是代码:

function checkname (name) {
 $.ajax({
 url: "http://api.twitter.com/1/users/show/" + name + ".xml",
 statusCode: {
 404: function() {
 $("#divOfInterest").html("Sorry, " + name + " is not a valid twitter account");}
 }
 });
}

但它不起作用,我真的不知道为什么,这是我的fiddle,所以你可以看到自己。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

查看错误控制台,例如Chrome:

XMLHttpRequest cannot load http://api.twitter.com/1/users/show/dummy.xml. Origin http://fiddle.jshell.net is not allowed by Access-Control-Allow-Origin.

但是,您可以在服务器上构建一个包装器脚本,并尝试从那里调用Twitter API并在AJAX调用中使用您的脚本。

答案 1 :(得分:1)

您可以在服务器上创建一个php页面,并使用他们的方法向api发出请求。

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

PHP页面:(check.php)

if (isset($_POST['name'])) {
    $url = "https://api.twitter.com/1/users/lookup.json?screen_name=" . $_POST['name'];
    $content = @file_get_contents($url);

    if (($json_data = json_decode($content, 1)) == NULL) {
        echo 0;
    } else {
        //print_r($json_data);
        if (!empty($json_data[0]['screen_name'])) {
            // user exists
            echo 1;
        }   
    }

    exit;
}

然后从ajax

调用它
<script type="text/javascript">
var dataString = 'name=<?php echo $_GET['name'];?>';
$.ajax({
    type: "POST",
    url: "check.php",
    data: dataString,
    cache: false,
    datatype: 'html',
    success: function(data){
    if (data == '1') {
        alert('user exists');
    } else {
        alert('user does not exist');
    }
    //alert(result);    
    }
});
</script>

要向同一页面发出请求,请按照这种方式进行修改。

在其他所有内容之前将php脚本放在文档的顶部。

if (isset($_POST['ajax']) && isset($_POST['name'])) {

    PHP code

    exit; // <---- this is very important
}

在javascript中添加新变量ajax=1

var dataString = 'name=<?php echo $_GET['name'];?>&ajax=1';

和网址

url: "currentpage.php",