PHP を使用して CartoDB アカウントに接続し、レイヤーを表示する CartoDB マップがあります。マップは表示できるがレイヤーは表示できないという報告を受けていますが、その理由はわかりません... 以下は Chrome に表示されるエラーの画像ですが、特定のユーザーにのみ表示されます。
次のようなクロスオリジンリクエストを許可するように .htaccess を設定しようとしました:
<FilesMatch "\.(js)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Origin http://www.example.com
Header set Access-Control-Allow-Origin http://example.com
Header set Access-Control-Allow-Origin http://projectname.example.com
Header set Access-Control-Allow-Credentials true
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
</FilesMatch>
また、php ファイルに allow access origin を含めるように設定しようとしました: PHP ファイル 1:
<?php
header("Access-Control-Allow-Origin: *");
include 'http://example.com/phplocation/cartodbProxy.php';
$queryURL = $_POST['qurl'];
$return = goProxy($queryURL);
echo $return;
?>
PHP ファイル 2:
<?php
header("Access-Control-Allow-Origin: *");
session_cache_limiter('nocache');
$cache_limiter = session_cache_limiter();
function goProxy($dataURL)
{
$baseURL = 'https://cartoDBUserName.cartodb.com/phplocation/v2/sql?';
$api = '&api_key=enter API key here';
$url = $baseURL.'q='.urlencode($dataURL).$api;
$result = file_get_contents ($url);
return $result;
}
?>
私も試しました:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/projectLocation/$1 [L,R=301]
それでもユーザーはアクセスできません....