Access-Control-Allow-Origin: * не работает? - PullRequest
3 голосов
/ 27 февраля 2012

Классическая проблема «Происхождение ... не разрешено Access-Control-Allow-Origin». Две машины обслуживают контент для одного и того же сайта. Когда машина A выполняет $('#main').load('link_to_resource_on_B') через jquery, машина B передает содержимое с помощью mod_python, добавляя заголовок Access-Control-Allow-Origin: *. Но по какой-то причине это все еще не работает. Я проверил это на Chrome, Safari и Internet Explorer. И я проверил через командную строку, чтобы проверить заголовок ответа, кажется, Access-Control-Allow-Origin: * успешно в заголовке из B. См. Ниже. Чего мне не хватать?

$ telnet localhost 80
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET /tests/python/test/env HTTP/1.1
host: 10.0.1.10 

HTTP/1.1 200 OK
Date: Mon, 27 Feb 2012 02:05:33 GMT
Server: Apache/2.2.20 (Ubuntu)
Access-Control-Allow-Origin: *
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html

1 Ответ

4 голосов
/ 10 декабря 2012

Включение заголовка Access-Control-Allow-Origin в ответе недостаточно. Реализация на стороне сервера должна обеспечивать надлежащую обработку запроса перед полетом . В частности, в ответе ОПЦИИ должны быть установлены следующие заголовки HTTP:

Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST

Другие заголовки HTTP, такие как Access-Control-Allow-Headers , могут также понадобиться в ответе OPTIONS, если в вашей среде используются нестандартные заголовки HTTP.

Имейте в виду, что Access-Control-Allow-Origin: * HTTP-заголовок также должен быть установлен в следующих ответах GET & POST.

...