Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery AJAX从twitter搜索读取JSON数据无效_Jquery_Json_Search_Twitter - Fatal编程技术网

Jquery AJAX从twitter搜索读取JSON数据无效

Jquery AJAX从twitter搜索读取JSON数据无效,jquery,json,search,twitter,Jquery,Json,Search,Twitter,我使用jquery从twitter检索搜索结果,但它不起作用,您能解决我代码中的错误吗? 以下是表格搜索: <label>Enter keyword: </label><input type="text" id="keyword" name="keyword" size="50" autocomplete="off"/> <input type="button" name="btnsearch" id="btnsearch" value=" Se

我使用jquery从twitter检索搜索结果,但它不起作用,您能解决我代码中的错误吗? 以下是表格搜索:

<label>Enter keyword: </label><input type="text" id="keyword" name="keyword" size="50" autocomplete="off"/>
    <input type="button" name="btnsearch" id="btnsearch" value=" Search " />
输入关键字:
下面是jquery代码:

$(document).ready(
        function(){
            $("#keyword").focus();
            $("#btnsearch").click(function(){
                var keyword = $("#keyword").val();                          
                if(keyword == null || keyword == "") return;
                $("#results").html("<img src='loading.gif'/>");                 
                $.ajax({
                    url:'http://search.twitter.com/search.json?q='+keyword+'&rpp=50',
                    dataType:'json',
                    success:function(json){
                        $("#results").remove();
                        alert("Successfull");
                    },  
                    error:function(){
                        alert("cant search");
                    }
                });
            });
        }
    );
$(文档)。准备好了吗(
函数(){
$(“#关键字”).focus();
$(“#btnsearch”)。单击(函数(){
var关键字=$(“#关键字”).val();
如果(关键字==null | |关键字==“”)返回;
$(“#结果”).html(“”);
$.ajax({
网址:'http://search.twitter.com/search.json?q=“+关键字+”&rpp=50',
数据类型:'json',
成功:函数(json){
$(“#结果”).remove();
警报(“成功”);
},  
错误:函数(){
警报(“无法搜索”);
}
});
});
}
);
我只是测试它是否工作,当我按下搜索按钮时,它会提示“无法搜索”


有什么帮助吗?

您似乎正在尝试从自己的网页访问Twitter API。不幸的是,出于安全原因,浏览器不允许这种访问

您不能使用Ajax/JSON在另一台服务器上访问API

例如,假设您的网页位于www.myserver.com上。您只能访问来自www.myserver.com的API。您无法访问来自twitter的API

这被称为“同一原产地政策”


解决方案是使用服务器端语言(如PHP/Python/Perl)在服务器上创建代理。只需谷歌“ajax代理”就可以找到一些解决方案。

使用以下jQuery代码。它在生产中确实对我有用

$.getJSON('http://search.twitter.com/search.json?q=' + keyword + '_de&callback=?', function(json) {
    alert(JSON.stringify(json));
});
您必须指定&callback=?参数,以便jQuery使用JSON。 可能只是添加&callback=?在您的示例中会有所帮助,但上面是我如何做到的。

演示:


回调应该是JSONP:

这是因为您没有使用数据类型:“JSONP”这是访问跨域数据时要添加的代码

下面是工作代码(我已经试过了)

$(文档)。准备就绪(
函数(){
$(“#关键字”).focus();
$(“#btnsearch”)。单击(函数(){
var关键字=$(“#关键字”).val();
如果(关键字==null | |关键字==“”)返回;
$(“#结果”).html(“”);
$.ajax({
键入:“GET”,
数据类型:“jsonp”,
contentType:“应用程序/json;字符集=utf-8”,
网址:'http://search.twitter.com/search.json',
数据:“q=”+关键字+“&rpp=50”,
成功:函数(json){
$(“#结果”).remove();
警报(“成功”);
},
错误:函数(){
警报(“无法搜索”);
}                 
});             
});         
}     
); 

如果向错误处理程序添加参数,则会显示错误。请阅读该错误并发布其内容。
dataType:'jsonp'丢失。在进行跨域调用时必须添加此项。。。请参考我的答案。谢谢,这很有效!那么,我们可以通过使用原始javascript来完成同样的任务吗?如何做到这一点呢?啊,我的意思是不用jquery,我只使用javascript。如何做到这一点:(我建议你使用Jquery,因为它效率更高。。如果你想对普通的js做同样的事情,那么你可以创建xmlhttp对象。谢谢,现在我在将数据写入文本文件方面有问题。!人们说js不能写入文件,所以我使用jsp来完成这项任务,但很难将js变量分配给jsp代码!(附言:我不允许使用PHP:()
$(document).ready(         
function(){             
$("#keyword").focus();            
$("#btnsearch").click(function(){                 
var keyword = $("#keyword").val();                                           
if(keyword == null || keyword == "") return;                 
$("#results").html("<img src='loading.gif'/>");                                  
    $.ajax({ 
    type: 'GET',
    dataType: 'jsonp',
    contentType: "application/json; charset=utf-8",
    url:'http://search.twitter.com/search.json',
    data: 'q='+keyword+'&rpp=50',
    success:function(json){                         
    $("#results").remove();
    alert("Successfull");                     
    },
error:function(){                         
alert("cant search");                     
}                 
});             
});         
}     
);