0

我正在编写一段代码,使用 jQuery 和 Ajax 检查您在文本框中输入的内容是否是有效的用户名,然后查看该页面是否存在 - http://api.twitter.com/1/users/显示/值.xml - 如果它不存在,我会写一些类似“这个 twitter 帐户不存在”的东西。

这是代码:

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");}
 }
 });
}

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

4

2 回答 2

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 调用中使用您的脚本。

于 2012-09-14T13:16:20.593 回答
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",
于 2012-09-14T13:23:39.523 回答