0

通常、私のウェブサイトにアクセスすると、次の htaccess ルールが適用されます。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php$1 [L]

したがって、 http://example.com/test/1はhttp://example.com/index.php/test/1になります

AJAX呼び出しの場合、私はこれを持っています:

RewriteCond %{HTTP_HOST} ^api\.example\.net
RewriteRule ^(.*)$ /api.php$1 [L]

したがって、ドメインと同じディレクトリを指す仮想 hsot とともに、http://api.example.com/test/1はhttp://example.com/api.php/test/1になります。

この 2 つの違いは、index.php が、最初のページ読み込みのベース HTML フレームワークである JSON と共に返されることです。APIはJSONを返すだけですが

http://api.example.comを介してウェブサイトで使用されていない、他のサーバーが作成できる REAL API 呼び出しもあります。

誰もこれに問題があると思いますか? より良い方法はありますか?

4

1 に答える 1

1

プレーン JSON の問題は、サブドメインを含むクロスドメイン AJAX リクエストを実行できないことです。しかし、すべての問題には解決策があります。CORSと呼ばれる手法があります。これは、クロスドメイン呼び出しを許可するために特別なヘッダーを追加するだけでよいことを意味します。

したがって、ドメイン example.com を許可するだけの場合、ヘッダーは次のようになります。

Access-Control-Allow-Origin: http://example.com

すべてのドメインからのアクセスを許可する場合は、代わりにアスタリスクを使用します。

Access-Control-Allow-Origin: *

最後に php コードです。この行 php を他の出力の前に配置する必要があります。そうしないと、警告が表示され、ajax 呼び出しが失敗します。

header("Access-Control-Allow-Origin: http://example.com");
于 2013-06-11T19:17:23.810 に答える