Tumblr API 使用本地测试服务器的 OAuth
Tumblr API OAuth with local test server
我正在尝试从我的 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 应用程序设置页面上,我有这些选项,我必须填写这些选项 —
有没有办法让它与我的本地测试服务器一起工作?这是我调用以请求访问的代码。
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
问题。我为 Javascript 下载了这个 JSONP 库( 我没有在我的项目 中使用 JQuery )并且能够访问 api通过这样写:
JSONP('https://api.tumblr.com/v2/blog/myblog.tumblr.com/posts?api_key=(API_KEY)'
, function(data) {
console.log(data);
});
哪个returns一个JSON对象,然后我可以使用data.response
之类的东西或数组中的任何对象来获取数据。
同样,我的问题不是 Tumblr 没有授权我的测试服务器。我能够使用 127.0.0.1:port
作为我的应用程序网站和回调 url.
来实现它
我正在尝试从我的 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 应用程序设置页面上,我有这些选项,我必须填写这些选项 —
有没有办法让它与我的本地测试服务器一起工作?这是我调用以请求访问的代码。
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
问题。我为 Javascript 下载了这个 JSONP 库( 我没有在我的项目 中使用 JQuery )并且能够访问 api通过这样写:
JSONP('https://api.tumblr.com/v2/blog/myblog.tumblr.com/posts?api_key=(API_KEY)'
, function(data) {
console.log(data);
});
哪个returns一个JSON对象,然后我可以使用data.response
之类的东西或数组中的任何对象来获取数据。
同样,我的问题不是 Tumblr 没有授权我的测试服务器。我能够使用 127.0.0.1:port
作为我的应用程序网站和回调 url.