CORS реализован таким образом, что он не нарушает предположений, сделанных в пре-CORS, мире с единственным источником.
В мире pre-CORS клиент может запускать крест -origin (например, с помощью тега скрипта), но он не смог прочитать заголовки ответов.
Чтобы гарантировать, что CORS не нарушит это предположение, спецификация CORS требует, чтобы сервер выдавал явные разрешения для чтения клиентом этих заголовков (через заголовок Access-Control-Expose-Headers
). Таким образом, несанкционированные запросы CORS ведут себя так же, как в мире pre-CORS.
Это довольно хороший вопрос. Просматривая http://www.w3.org/TR/cors/#simple-response-header , неясно, зачем вам это нужно или нужно сделать.
Спецификация CORS вкладывает большой вес в идею о том, что у вас должно быть рукопожатие предварительного запроса, когда клиент запрашивает тип соединения, и сервер отвечает, что он это разрешит, - поэтому это может быть просто еще одним аспектом этого.
По умолчанию длина содержимого не является допустимым заголовком, поэтому я столкнулся с той же проблемой (позже, когда мне нужно было получить доступ к WebDAV и пришлось модифицировать допустимые параметры). CORS действительно не делает во многом это чувство (для меня), поэтому меня это не удивило бы, если бы это были капризы.