Microsoft Edge CORS утверждает, что «метод запроса PATCH не был представлен в списке Access-Control-Allow-Methods», хотя он - PullRequest
0 голосов
/ 09 мая 2018

Я тестирую веб-приложение в MS Edge, которое отправляет запрос PATCH на наш API. Edge отправляет следующий предварительный запрос OPTIONS:

Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: en-GB
Access-Control-Request-Headers: authorization,content-type
Access-Control-Request-Method: PATCH
Cache-Control: no-cache
Connection: Keep-Alive
Content-Length: 0
Host: https://api.my.site
Origin: https://app.my.site
Referer: http://app.my.site
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299

На что наш API-сервис отвечает:

Access-Control-Allow-Headers: Authorization, Content-Type
Access-Control-Allow-Methods: GET, POST, PUT, PATCH
Access-Control-Allow-Origin: *
Cache-Control: no-cache
Connection: close
Content-Length: 0
Content-Type: text/plain
Date: Wed, 09 May 2018 11:18:13 GMT
Server: Apache/2.4.7 (Ubuntu)
X-Powered-By: PHP/5.5.9-1ubuntu4.22

Однако MS Edge блокирует запрос PATCH, ссылаясь на следующую ошибку:

SEC7124: Метод запроса PATCH отсутствовал в списке Access-Control-Allow-Methods.

Несмотря на то, что PATCH указан в заголовке Access-Control-Allow-Methods. Я также следовал указаниям этого вопроса , отмечая, что я не использую * в заголовке и есть только один заголовок Access-Control-Allow-Methods.

Также обратите внимание, что запрос отлично работает в последних версиях Chrome и Firefox.

Есть идеи о том, что может быть причиной этой ошибки?

...