Ранее я разместил тикет об этом на багтрекере WebKit, так как думал, что это странное поведение и, возможно, угроза безопасности.
Поскольку заявки, связанные с безопасностью, не доступны для публичного просмотра, я процитируюответ от Джастина Шуха здесь:
Это реализовано именно так, как требуется спецификацией.Для простых запросов перекрестного происхождения http://www.w3.org/TR/cors/#simple-method> предполетной проверки нет;запрос сделан, и ответ не может быть прочитан, если соответствующие заголовки не авторизуют запрашивающий источник.Функционально это ничем не отличается от создания формы и использования сценария для создания POST вне источника (что всегда было возможно).
Итак: вы можете выполнять POST, так как можетев любом случае это можно сделать, внедрив форму и вызвав кнопку отправки с помощью javascript, но вы не увидите результат.Потому что вы не сможете сделать это в сценарии формы.
Решением было бы добавить заголовок к сценарию, выполняющемуся на целевом сервере, например
<?php
header("Access-Control-Allow-Origin: http://your_source_domain");
....
?>
Haven 'Я проверил это, но в соответствии со спецификацией, это должно работать.
Firefox 3.6, кажется, обрабатывает это по-другому, сначала выполнив OPTIONS, чтобы увидеть, может ли он выполнить фактический POST.Firefox 4 делает то же самое, что и Chrome, или, по крайней мере, в моем быстром эксперименте.Подробнее об этом на https://developer.mozilla.org/en/http_access_control