我正在尝试从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应用设置页面上,我必须填写以下选项:

javascript - Tumblr API OAuth与本地测试服务器-LMLPHP

有没有办法使它与我的本地测试服务器一起使用?这是我要求访问的代码。

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();


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

最佳答案

原来我的问题是使用JSON而不是JSONP,它绕过了Access-Control-Allow-Origin问题。我下载了Java的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作为我的应用程序网站和回调URL来使其工作。

关于javascript - Tumblr API OAuth与本地测试服务器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39301048/

10-11 23:52