Разница между «Разрешить» и «Доступ -Управление -Разрешить -Методы» в заголовке ответа HTTP?

Я написал RESTful API, используя ExpressJS для NodeJS. Я использую BackboneJS для вызова этого API.

Вот пример заголовка, который мой API возвращает через OPTIONS:

Access-Control-Allow-Headers:Content-Type
Access-Control-Allow-Origin:http://localhost
Allow:GET,PUT,DELETE
Connection:keep-alive
Content-Length:14
Content-Type:text/html; charset=utf-8
Date:Sun, 19 Aug 2012 13:52:35 GMT
X-Powered-By:Express

Я изменил заголовок, чтобы включить два поля Доступ -Контроль -Разрешить, которые появляются первыми. Остальное генерируется экспрессом автоматически, включая поле Разрешить. Я могу ПОЛУЧИТЬ без проблем. Однако, когда я пытаюсь выполнить PUT или DELETE с помощью BackboneJS, я сталкиваюсь с:

Method PUT is not allowed by Access-Control-Allow-Methods.
Method DELETE is not allowed by Access-Control-Allow-Methods.

Естественно, я могу изменить заголовки ответов, чтобы включить оба этих метода, чтобы обойти это.

Но я хочу понять, в чем разница между ними и базовым «Разрешить», который ExpressJS автоматически добавляет на основе того, что я привязал к маршруту. В чем разница?

14
задан Michal 19 August 2012 в 14:17
поделиться