2017-03-11 5 views
1

これは実際に行う必要がある非常にアマチュア/悪いアプローチかもしれませんが、私は現在埋め込み可能なプラットフォームを構築していますクライアントのウェブサイトにスクリプトタグが付いています。そのスクリプトは、ユーザが何らかの情報を入力して電子メールに送信することを可能にする。そこにあるオプションの1つは、特定の人のソーシャルメディアを見ることです。私がしたいことは、ソーシャルボタンのクリックをMySQLデータベースに記録することです。

現在、ソーシャルクリックのコードは$.postb.domain.comです。私はエラーが表示されますXMLHttpRequest cannot load due to access control checks.このエラーは、手動で各ドメインを.htaccessの許可元に手動で追加すると消えますが、これはクライアントがスクリプトを埋め込むすべてのドメインに対してこれを追加する必要があります。 *Allow Credentialsのために使用できませんので、私はこのトピックに関する限られた知識にこだわりました。

正しい方向に指していれば幸いです。質問が正しく言及されていない場合は十分な情報があれば謝ります。

答えて

1

This error goes away when I manually add each domain to the allow origin in .htaccess, but this would be very frustrating to have to add this for every domain a client wants to embed the script on. * can't be used because of Allow Credentials

ので、代わりのあなたはOriginリクエストヘッダの値は、本質的にちょうど Access-Control-Allow-Originレスポンスヘッダの値にエコー持つことができます応答で*を送信する:からの要求を許可する

SetEnvIfNoCase ORIGIN (.*) ORIGIN=$1 
Header always set Access-Control-Allow-Origin "%{ORIGIN}e" 

要求に資格情報が含まれている場合でも、任意の起点。

以下は、同じ効果を達成する別の方法です。

RewriteEngine On 
RewriteCond %{HTTP:Origin} (.+) 
RewriteRule . - [E=CORS_ORIGIN:%1] 
Header set Access-Control-Allow-Origin %{CORS_ORIGIN}e env=CORS_ORIGIN 
関連する問題