【发布时间】:2014-10-07 13:04:24
【问题描述】:
我找不到我的问题的解决方案。我正在尝试通过 OAuth 2.0 获取 google 访问令牌,但我无法使我的 post 方法工作。这是我的代码:
function oauthCallback(url) {
var code,
obj, request;
if (url.indexOf("code=") > 0) {
code = url.substr(url.indexOf('=') + 1);
request = $http({
method: "POST",
url: GOOGLE_TOKEN_URL,
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
data: 'code=' + code + '&client_id=' + googleClientID + '&client_secret=' + googleClientSecret + '&redirect_uri=' + redirectURI + '&grant_type=authorization_code'
});
request.success( function(data) {
tokenStore['googleToken'] = data.access_token;
});
request.error( function(data, status, headers, config) {
alert('failed!')
});
deferredLogin.resolve();
} else if (url.indexOf("error=") > 0) {;
deferredLogin.reject(obj);
} else {
deferredLogin.reject({error: 'error occured', error_description: 'Unknown', error_reason: "Unknown"});
}
}
使用邮递员我有 access_token 所以 url 和数据是正确的。我尝试过this 和 jsonp 以及许多其他答案,但我总是得到相同的结果:
XMLHttpRequest 无法加载 https://accounts.google.com/o/oauth2/token。请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin
'http://localhost:63342'因此不允许访问。
我做错了什么?
【问题讨论】:
标签: javascript angularjs oauth