CORS, не работающий над Chrome

Я настроил Разделение ресурсов перекрестного Источника на сервере (Причал с помощью CrossOriginFilter), и это работает отлично над IE8 и Firefox. На Chrome это просто... не делает.

  $.ajax({ url : crossOriginURL,
    type : "GET",
    error : function(req, message) {
        alert(message);
    },
    dataType :  "json" } );

Функция ошибок вызывается с полезным сообщением "ошибка". Это, кажется, выполняет запрос, но без любого из заголовков Вы ожидали бы. Если URL от того же источника, он хорошо работает.

30
задан donohoe 30 August 2010 в 12:52
поделиться

1 ответ

Я решил свою проблему следующим образом:

Добавьте это в свой PHP-код:

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true ");
header("Access-Control-Allow-Methods: OPTIONS, GET, POST");
header("Access-Control-Allow-Headers: Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control");

Или добавьте эти заголовки в свой ответ.

Проблема: браузеры запрашивают у сервера параметры перед вашим основным запросом, чтобы проверить, есть ли на сайте возможность разрешить общение с другим источником, а затем, если да, они выполняют ваш запрос POST или GET.

РЕДАКТИРОВАТЬ: Попробуйте это (без вашего хака), чтобы увидеть, получаете ли вы данные...

$.ajax({ url : crossOriginURL,
    type : "GET",
    error : function(req, message) {
        alert(message);
    },
    success : function(data) {
        alert(data);
    },
    dataType :  "text"} );
24
ответ дан 28 November 2019 в 00:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: