Tumblr API OAuth与本地测试服务器

时间:2016-09-02 21:39:15

标签: javascript oauth tumblr

我正在尝试从我的tumblr博客上发帖子并将它们放在一个单独的网站页面上。为此,我在他们的OAuth页面上注册了一个应用程序,但是当我尝试实际请求授权时,我遇到了一些问题。我的控制台吐出了这条消息 -

XMLHttpRequest cannot load https://api.tumblr.com/v2/blog/myblog.tumblr.com/posts?api_key=(MY_KEY).
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://127.0.0.1:63342' is therefore not allowed access.

(由于显而易见的原因,我在这里省略了键值。)

现在,我的网站实际上还没有,我有一个运行在localhost:63342的测试服务器,但在他们的OAuth应用设置页面上,我有这些选项,我必须填写 -

oauth page

有没有办法让我的本地测试服务器工作?这是我要求访问的代码。

var request = new XMLHttpRequest();

request.open('GET', 'https://api.tumblr.com/v2/blog/myblog.tumblr.com/posts?api_key=(API_KEY)', true);

request.onload = function() {
    if (request.status >= 200 && request.status < 400) {
        // Success!
        var data = JSON.parse(request.responseText);
        console.log(data);
    } else {
        // We reached our target server, but it returned an error
        console.log('server error');
    }
};

request.onerror = function() {
    // There was a connection error of some sort
    console.log("ERROR!!!");
};

request.send();

任何帮助将不胜感激!的谢谢!

1 个答案:

答案 0 :(得分:2)

结果我的问题是使用JSON而不是JSONP,它绕过了Access-Control-Allow-Origin问题。我为Javascript下载了这个JSONP库(我在我的项目中没有使用JQuery )并且能够通过编写这个来访问api:

JSONP('https://api.tumblr.com/v2/blog/myblog.tumblr.com/posts?api_key=(API_KEY)'
, function(data) {
    console.log(data);
});

返回一个JSON对象,然后我可以使用类似data.response或数组中的任何对象的数据进行数据。

同样,我的问题不是Tumblr没有授权我的测试服务器。我能够使用127.0.0.1:port作为我的应用程序网站&amp;回调网址。