“错误”;“访问控制允许原点”不允许原点为空;在jsOAuth

“错误”;“访问控制允许原点”不允许原点为空;在jsOAuth,oauth,xmlhttprequest,twitter,cross-domain,twitter-oauth,Oauth,Xmlhttprequest,Twitter,Cross Domain,Twitter Oauth,我正在尝试将twitter API与库一起使用 完整html 加载。。 var oauth=oauth({ 消费者语:“-MY-KEY-”, 消费者信条:“我的秘密” }); 已更新 oauth.get(“?”,成功,失败) 功能成功(数据){ $(“#message”).html(“suces:+data.text”); var timeline=jQuery.parseJSON(data.text); 控制台日志(时间线); $。每个(时间线、功能(元素){ console.log(ele

我正在尝试将twitter API与库一起使用

完整html
加载。。
var oauth=oauth({
消费者语:“-MY-KEY-”,
消费者信条:“我的秘密”
});
已更新 oauth.get(“?”,成功,失败)

功能成功(数据){
$(“#message”).html(“suces:+data.text”);
var timeline=jQuery.parseJSON(data.text);
控制台日志(时间线);
$。每个(时间线、功能(元素){
console.log(element.text);
});
}
功能故障(数据){
log(“扔腐烂的水果,失败的东西”);
$(“#消息”).html(“错误”);
}   
结果

问题
  • 我做错了什么
  • 如何在PC中使用twitter API
如果你能寄给我任何例子,我将不胜感激

谢谢大家。

我做错了什么

您正试图向Twitter发出AJAX请求。您违反了跨域访问策略-无法访问Twitter域上的数据

如何在我的电脑上使用Twitter API

选择一个:

  • 使用
  • 使用服务器端代理
  • 将您的代码存储在
    文件://
    路径上,这样可以消除跨域限制
  • 更改浏览器的安全设置以允许此类访问
我已经用斜体字把那些不太可能的画了出来

另外,作为一名经验丰富的Twitter开发人员,我需要对您的代码做一个重要的说明:您正在使用Javascript访问API。虽然使用JS来实现这一点并不是不允许的,但在javascript中使用OAuth是非常不安全的,如果您在网站上使用此代码,您的应用程序将被禁止访问Twitter API

我做错了什么

您正试图向Twitter发出AJAX请求。您违反了跨域访问策略-无法访问Twitter域上的数据

如何在我的电脑上使用Twitter API

选择一个:

  • 使用
  • 使用服务器端代理
  • 将您的代码存储在
    文件://
    路径上,这样可以消除跨域限制
  • 更改浏览器的安全设置以允许此类访问
我已经用斜体字把那些不太可能的画了出来


另外,作为一名经验丰富的Twitter开发人员,我需要对您的代码做一个重要的说明:您正在使用Javascript访问API。虽然使用JS来实现这一点并不是不允许的,但在javascript中使用OAuth是非常不安全的,如果您在网站上使用此代码,您的应用程序将被禁止访问Twitter API。

我使用“JS”只是为了学习,在我的实际应用程序中不会这样。我修改了代码以使用JSONP(仍然不起作用)。对不起,我不明白:“使用服务器端代理”您的意思是在IIS服务器上发布文件(例如)?如何更改浏览器设置以允许这种访问?感谢您的帮助大多数浏览器允许您在“安全”窗格中更改此设置。对不起,我不能说得更具体了。使用服务器端代理时,我的意思是编写一个脚本,只需从服务器发出请求。AJAX将允许您向正在浏览的域发出请求。JSONP在您的案例中应该可以很好地工作-如果它在您的案例中不工作,那么您就没有正确地实现它。我在以下地址发布了代码:Think so-那不是JSONP。我使用“JS”只是为了研究,在我的实际应用程序中不会是这样。我修改了代码以使用JSONP(仍然不起作用)。对不起,我不明白:“使用服务器端代理”您的意思是在IIS服务器上发布文件(例如)?如何更改浏览器设置以允许这种访问?感谢您的帮助大多数浏览器允许您在“安全”窗格中更改此设置。对不起,我不能说得更具体了。使用服务器端代理时,我的意思是编写一个脚本,只需从服务器发出请求。AJAX将允许您向正在浏览的域发出请求。JSONP在您的案例中应该可以很好地工作——如果它在您的案例中不工作,那么您就没有正确地实现它。
<div id="message">Loading..</div>

<script src="jsOAuth-1.3.3.min.js" type="text/javascript"></script>
<script src="http://code.jquery.com/jquery-1.7.min.js" type="text/javascript"></script>
<script type="text/javascript">
        var oauth = OAuth({
            consumerKey: "-MY-KEY-",
            consumerSecret: "MY-SECRET"
        });
        function success(data){
            $("#message").html("Sucess: " + data.text);
            var timeline = jQuery.parseJSON(data.text);
            console.log(timeline);
            $.each(timeline, function (element){
                console.log(element.text);
            });
        }
        function failure(data) {
            console.log("Throw rotten fruit, something failed");
            $("#message").html("Error" );
        }   
</script>