Angularjs - 对预检请求的响应不通过访问控制

时间:2017-11-02 12:00:58

标签: angularjs http post cors

我有以下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方法...

有什么问题?

提前致谢!

1 个答案:

答案 0 :(得分:0)

原来我有: $ http.defaults.headers.common ['ApiKey']设置默认情况下添加到标头中,并且在我的标头对象之前添加到POST请求中。 一旦我删除它就工作了。