不允许在http请求中使用Elgg标头

时间:2015-05-30 13:46:23

标签: angularjs http cors elgg angular-http-interceptors

我正在AngularJS中开发一个前端应用程序,我正试图登录elgg平台。 如文档here中所述,如果要使用HMAC身份验证,则必须添加一些自定义标头。在AngularJS中,我使用了拦截器。

$httpProvider.interceptors.push(function($q, HMAC){
    return {
        // optional method
        'request': function(config) {
            // do something on success
            console.log("Interceptor Config-> ",config);
            console.log("HTTP? --> ",config.url.indexOf('http'));

            if(config.url.indexOf('http') == 0){
                //do something only on http requests
                config.headers = config.headers || {};

                config.headers['X-Elgg-apikey'] = "";
                config.headers['X-Elgg-time'] = "";
                config.headers['X-Elgg-none'] = "";
                config.headers['X-Elgg-hmac'] = "";
                config.headers['X-Elgg-hmac-algo'] = "";

            }

            console.log("Return -->", config);
            return config || $q.when(config);
        }
    };
});

但我得到的回应是:

XMLHttpRequest cannot load http://localhost/elgg-1.9.8/elgg-1.9.8/services/api/rest/xml/?method=auth.gettoken. Request header field X- Elgg-hmac-algo is not allowed by Access-Control-Allow-Headers.

我在localhost上的网络服务器上有apache,我已配置:
<Directory /> Header always set Access-Control-Allow-Origin "*" Header always set Access-Control-Request-Headers "*" Header always set Access-Control-Request-Method "*" AllowOverride none Require all denied </Directory>

我还检查了响应标题,这是我得到的: HTTP/1.1 200 OK Date: Sat, 30 May 2015 13:37:07 GMT Server: Apache/2.4.10 (Unix) OpenSSL/1.0.1j PHP/5.6.3 mod_perl/2.0.8-dev Perl/v5.16.3 Access-Control-Allow-Origin: * Access-Control-Request-Headers: * Access-Control-Request-Method: * X-Powered-By: PHP/5.6.3 Cache-Control: no-cache, must-revalidate Expires: Fri, 05 Feb 1982 00:00:00 -0500 Vary: Accept-Encoding,User-Agent Content-Encoding: gzip Content-Length: 81 Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/html; charset=UTF-8

我无法找到错误的位置。我在服务器上设置了头响应,但我仍然在控制台上出现此错误。 感谢

0 个答案:

没有答案