Я слежу за статьей Mozilla о том, как настроить мой сайт, чтобы разрешать запросы на межсайтовый скриптинг. Используя диспетчер IIS, я добавил следующие заголовки ответов HTTP
Access-Control-Allow-Origin : *
Access-Control-Allow-Headers : Origin, SecurityPrivateKeyID
Access-Control-Allow-Methods : GET, POST, PUT, DELETE, OPTIONS
Несмотря на это, я продолжаю получать 405 Method Not Allowed
, когда мои браузеры (Firefox и Chrome) отправляют запрос перед полетом с пользовательским заголовком SecurityPrivateKeyID
.
Запрос
OPTIONS /Service/Json/User.svc/ HTTP/1.1
Host: serviceprovider.com
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Origin: http://client.com
Access-Control-Request-Method: GET
Access-Control-Request-Headers: securityprivatekeyid
Connection: keep-alive
Ответ
HTTP/1.1 405 Method Not Allowed
Allow: GET
Content-Length: 1565
Content-Type: text/html; charset=UTF-8
Server: Microsoft-IIS/8.0
access-control-allow-origin: *
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Headers: Origin, SecurityPrivateKeyID
Date: Sat, 23 Mar 2013 08:35:03 GMT
Сервис работает отлично при непосредственном доступе к http://serviceprovider.com/Service/Json/User.svc/
.
Любые идеи о том, что я делаю неправильно?
[примечание Я изменил файлы хостов, чтобы указать client.com и serviceprovider.com на моем компьютере]
[решение с использованием JSONP не будет выполняться, так как мой веб-сервис должен иметь возможность использовать POST, PUT и DELETE methos]