在Disqus身份验证中拒绝CORS

时间:2014-03-29 20:00:50

标签: javascript oauth-2.0 disqus

我尝试使用Disqus OAuth2身份验证。这就是我所做的:

1:创建了一个disqus应用程序并将http://myweb/login设置为回调uri,并在域textarea中设置myweb(与您的公钥链接的域(用于推荐检查))。

2:尝试在disqus.com/api/oauth/2.0/authorize http://myweb/somepage上发出XHR GET请求。出现CORS错误。

我通过调用

解决了这个问题
window.open("https://disqus.com/api/oauth/2.0/authorize/?
client_id="+id+"&scope=read&response_type=code&redirect_uri=http://myweb/login",
"_blank");

id是我的申请的ID。这很有效,我在网址中收到code响应。

3:现在我需要POST来检索访问令牌。再次出现CORS错误。我尝试创建并提交表单,服务器响应正常。

错误是:

XMLHttpRequest cannot load https://disqus.com/api/oauth/2.0/authorize/?
client_id=...&redirect_uri=http://myweb/login. No 'Access-Control-Allow-Origin'
header is present on the requested resource.
Origin 'http://myweb' is therefore not allowed access.

我觉得我做错了,disqus OAuth2服务器应该为我的应用程序设置Access-Control-Allow-Origin。那么如何避免HTTP请求中的CORS错误呢?

我不想使用PHP或jQuery来解决这个问题。

1 个答案:

答案 0 :(得分:1)

Disqus OAuth实现只是服务器端,这就是您的请求被拒绝的原因。即使你可以在客户端提出请求,你也会暴露你的API密钥,这不会很好。

我不得不使用PHP或其他服务器端语言来发出访问令牌请求。我很害怕。

相关问题