我有以下angularjs代码:
this.createAccount = function (payload) {
var parameters = {
grant_type: 'password',
client_id: clientId,
client_secret: clientSecret,
email: payload.Email,
password: payload.Password,
scope: 'myApi offline_access openid'
}
return $http({
method: "POST",
url: $sce.trustAsResourceUrl(identityApiURL + '/account/register'),
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json'
},
data: 'grant_type=' + parameters.grant_type + '&client_id=' + parameters.client_id + '&client_secret=' + parameters.client_secret + '&email=' + encodeURIComponent(parameters.email) + '&password=' + parameters.password + '&scope=' + parameters.scope
}).error(function (response) {
$log.error('Something went wrong when creating your account', response);
});
}
尝试运行时,我在控制台中继续收到以下错误:
无法加载https://........account/register:对预检请求的响应未通过访问控制检查:请求的资源上没有“Access-Control-Allow-Origin”标头。因此,不允许原点“https://localhost:3000”访问。
我可以看到使用params创建了一个配置对象,但数据为NULL。 同样在网络上我看到OPTIONS但没有触发POST方法...
有什么问题?
提前致谢!
答案 0 :(得分:0)
原来我有: $ http.defaults.headers.common ['ApiKey']设置默认情况下添加到标头中,并且在我的标头对象之前添加到POST请求中。 一旦我删除它就工作了。