首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >因此,不允许Origin的http://localhost:3000‘访问Twitter API

因此,不允许Origin的http://localhost:3000‘访问Twitter API
EN

Stack Overflow用户
提问于 2017-08-30 01:19:23
回答 1查看 680关注 0票数 0

我正在开发一个使用Twitter API REST的web应用程序。我有一个Twitter帐户的页面和一个用于添加新帐户的按钮。当按钮被按下时,角度控制器中的功能被执行:

代码语言:javascript
复制
// Calls token to add a new Twitter user
    $scope.callToken = function () {
        $http.get('/token')
            .then(function (response) {
                console.log(response);
            });
    };

这是后台服务于de request的代码。它只是重定向到Twitter来添加一个新用户。

代码语言:javascript
复制
// routes.js
var token = express.Router();

	token.route('/token')
		.get(cuentasCtrl.getToken);
    
// Account file

exports.getToken = function(req, res) {

	twitter.getRequestToken(function(err, requestToken, requestSecret) {
        if (err)
            res.status(500).send(err);
        else {
            _requestSecret = requestSecret;
            res.setHeader('Access-Control-Allow-Origin', '*');
            res.redirect("https://api.twitter.com/oauth/authenticate?oauth_token=" + requestToken);
        }
    });
};

但是我得到了下一个错误:

代码语言:javascript
复制
Origin 'http://localhost:3000' is therefore not allowed access Twitter API

我的服务器在localhost:3000上运行,如果我在浏览器中放入localhost:3000/token,就没有问题。我已经阅读了using CORS的解决方案,并测试了其他浏览器,但它在我身上不起作用。我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2017-08-30 01:24:10

您在快速响应中发送的重定向被您在前端使用的http客户端捕获,并且重定向在那里发生。您处于一个典型的CORS环境中,当然,这不是您可以与Twitter rest API交互的方式。

您必须在节点端(服务器到服务器)对Twitter进行http调用,或者使用Twitter的客户端客户端库(https://dev.twitter.com/web/javascript)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45944864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档