web-dev-qa-db-ja.com

Access-Control-Allow-Originを使用するにはどうすればよいですか? html headタグの間に挿入されるだけですか?

外部サイトにアクセスできるので、クロスドメインリクエストを許可するのに効果的と思われるので、Access-Control-Allow-Originについて読んでいます。私の質問は、Access-Control-Allow-Originを使用してクロスドメインリクエストを許可する方法です。私はこれを試してみました(笑ってはいけません)(ちなみに、1つまたは0が返されるのは1つの数字だけです)

<html>
<head>
Access-Control-Allow-Origin: *
</head>
<body>
1
</body>
</html>

近いですか?ご協力いただきありがとうございます。簡単なクロスドメインリクエストを行う簡単な方法がある場合はお知らせください。

24
davis

これはHTTPヘッダーです。このヘッダーを理想的に送信するようにWebサーバーまたはwebappを構成します。おそらくhtaccessまたはPHPで。

または、使用できる場合があります

<head>...<meta http-equiv="Access-Control-Allow-Origin" content="*">...</head>

それがうまくいくかどうかはわかりません。すべてのHTTPヘッダーをHTMLで直接構成できるわけではありません。

これは多くのHTTPヘッダーの代替として機能しますが、下記の @ EricLaw のコメントを参照してください。この特定のヘッダーは異なります。

警告

この答えは、ヘッダーの設定方法に関するものです。クロスドメインリクエストの許可については何も知りません。

HTTPヘッダーについて

すべての要求と応答にはヘッダーがあります。ブラウザはこれをウェブサーバーに送信します

GET /index.htm HTTP/1.1

次に、ヘッダー

Host: www.example.com
User-Agent: (Browser/OS name and version information)
.. Additional headers indicating supported compression types and content types and other info

その後、サーバーは応答を送信します

Content-type: text/html
Content-length: (number of bytes in file (optional))
Date: (server clock)
Server: (Webserver name and version information)

追加のヘッダーは、たとえばCache-Control、それはすべてあなたの言語(PHP、CGI、Java、htaccess)とウェブサーバー(Apacheなど)に依存します。

11
Bryan Field

クロスドメインOriginを許可するには、3つの方法があります(jsonpを除く):

1)PHPなどのテンプレート言語を使用して、ページにヘッダーを直接設定します。ヘッダーの前にHTMLが存在しないと、ヘッダーが失敗することに注意してください。

 <?php header("Access-Control-Allow-Origin: http://example.com"); ?>

2)サーバー構成ファイル(Apache.conf)そしてこの行を追加します。ご了承ください "*"はすべて許可を表します。一部のシステムでは、資格情報セットも必要になる場合があります。一般に、すべてのアクセスを許可することはセキュリティ上のリスクであり、回避する必要があります。

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

3)Apache Webサーバーで複数のドメインを許可するには、構成ファイルに以下を追加します

<IfModule mod_headers.c>
    SetEnvIf Origin "http(s)?://(www\.)?(example.org|example.com)$" AccessControlAllowOrigin=$0$1
    Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
    Header set Access-Control-Allow-Credentials true
</IfModule>

4)開発では、ブラウザをハックし、Chrome Allow-Control-Allow-Origin extension) を使用して無制限のCORSを許可する

16
mbokil

Javaとspring MVCを使用する場合、ページを返すメソッドに次の注釈を追加するだけです。

@CrossOrigin(origins = "*")

「*」は、どこからでもページにアクセスできるようにするためのものです。詳細については https://developer.mozilla.org/fr/docs/Web/HTTP/Headers/Access-Control-Allow-Origin をご覧ください。

1
Laurent
<?php header("Access-Control-Allow-Origin: http://example.com"); ?>

このコマンドは、最初のコンソール警告情報のみを無効にします

コンソール

結果: コンソール結果

0
Jakub Ujvvary