web-dev-qa-db-ja.com

Access-Control-Allow-Origin '*'は許可されていません/ Apache2で動作しています

Javascriptを介してhood.ieに接続しようとしています:

hoodie = new Hoodie('http://example.com:6001');

しかし、エラーが発生します:A wildcard '*' cannot be used in the 'Access-Control-Allow-Origin' header when the credentials flag is true. Origin 'xxx' is therefore not allowed access.

と:

hoodie = new Hoodie('http://example.com');

404 ..を与えます.

Public/adminのlocalhost6001と:6002に接続できるので、ポートは機能しています(外部のexample.comでも)

しかし、devconsoleでは次のようになります。

OPTIONS: http://example.com:6001/_api/_session資格情報フラグがtrueの場合、'Access-Control-Allow-Origin'ヘッダーでワイルドカード「*」を使用することはできません。したがって、オリジン ' http://example.com 'はアクセスを許可されていません。 `

Apache2を設定しました:

 <VirtualHost *:80>
    DocumentRoot /var/www
    Header set Access-Control-Allow-Origin *
    Header add Access-Control-Allow-Headers "Origin, content-type"
    Header always set Access-Control-Allow-Methods "POST, GET, PUT, DELETE, OPTIONS"
    Header set Access-Control-Allow-Credentials "false"
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
            Header set Access-Control-Allow-Origin *
            Header set Access-Control-Allow-Credentials "false"
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>
     ErrorLog ${Apache_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${Apache_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

そして、追加を試しました:

<VirtualHost *:6001>
        Header set Access-Control-Allow-Origin *
        Header set Access-Control-Allow-Credentials "false"
</VirtualHost>

試した:

Header set Access-Control-Allow-Credentials false
Header set Access-Control-Allow-Credentials 'false'
Header set Access-Control-Allow-Credentials true 
...etc

Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Origin "example.com"

考えられるすべてのバリエーションを試しましたが、同じエラーが発生します...

しかし、:6001サービスのwwwディレクトリは私のホームフォルダのどこかにあり、var/wwwにはないので、別の場所に設定する必要があるのではないかと思います。動作しますが、Apacheがそれをどのように処理するか、場所を知っているか、hood.ieが独自のWebサービスを開始するかどうかはわかりません。

2
TrySpace

私はそれがちょうどあるべきだと信じています:

Header set Access-Control-Allow-Origin "*"

enable-cors.org で説明されているように、他のAccess-Control- *フラグなし。

2
Ouroborus

guess "Hoodie"はCookieを送信するXMLHttpRequestを使用しているため(withCredentials = "true")、許可されたオリジンにワイルドカードがあるため、ブラウザはサーバーからの応答を拒否しています。ヘッダ。

1