Я настроил свой веб-сайт (под управлением IIS8.5) для отправки заголовка ответа для CORS на поддомен за пределами моего основного домена, и ответ заголовка получает Firefox нормально. Все плагины, блокировщики рекламы и т. Д. c отключены, и я вижу заголовок в инспекторе DOM. Я пробовал:
Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: https://services.mywebsite.com
Access-Control-Allow-Origin: http://services.mywebsite.com
Access-Control-Allow-Origin: null
Access-Control-Allow-Origin: "null"
Я подтвердил, что сертификат SSL работает нормально (это сертификат с подстановочным знаком для * .mywebsite.com от Secti go, и я проверил, что весь сертификат path работает правильно)
Нет других заголовков ответа, кроме: X-Frame-Options: SAMEORIGIN, однако я удалил его с тем же результатом. Сайт предшествует CORS на несколько лет (ASP. NET Webforms), и я не могу найти других настроек, которые помешали бы Firefox подтверждать этот заголовок ответа.
Я прочитал десятки сообщений здесь (обычно у кого-то был самоподписанный сертификат или кто-то что-то забыл), но я не понимаю, что не так?
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://services.mywebsite.com/api/geodata/. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
Это абсолютно НЕ ПРОПУСТИТЕ! WTF Firefox?
Выдергивание волос здесь. Кто-нибудь?
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Transfer-Encoding: chunked
Content-Type: application/json; charset=UTF-8
Expires: -1
Server: Microsoft-IIS/8.5
X-Content-Type-Options: nosniff
Access-Control-Allow-Origin: https://services.mywebsite.com
X-Frame-Options: SAMEORIGIN
Date: Wed, 27 May 2020 08:28:05 GMT
Кто-то еще предложил добавить модуль CORS в IIS. Я сделал, а затем добавил в свой файл web.config следующее (в разделе system.webserver):
<cors enabled="true">
<add origin="*" allowed="true" >
<allowHeaders allowAllRequestedHeaders="true" />
</add>
</cors>
No Joy! Такое же сообщение от Firefox (и Chrome) - оба браузера полностью игнорируют эту директиву. Может ли это быть ошибкой в Mozilla?
-------------------- подробнее -------------- -------------------
Я думаю, проблема в следующем jquery скрипте с моим ЧАТОМ (который выполняет вызов API) . Он работал 12 лет (и все еще работает в старых версиях), поэтому я хочу посмотреть, что было устаревшим. Я подозреваю, что SignalR может быть проблемой и сбивать с толку браузер (ы) - поскольку SignalR делает запрос (не уверен, хотя - просто догадываюсь). Извините, что не упомянул об этом раньше.
$.connection.hub.start()
.done(function () {
var existingChatId = getExistingChatId(chatKey);
$.get("https://services.mywebsite.com/api/geodata/", function (response) {
myHub.server.logVisit(document.location.href, document.referrer, response.city_name, response.region_name, response.country_name, existingChatId);
}, "json");
})
.fail(function () { chatRefreshState(false); });
------------------- после использования подстановочных знаков для заголовков CORS --------------
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Transfer-Encoding: chunked
Content-Type: application/json; charset=UTF-8
Expires: -1
Server: Microsoft-IIS/10.0
X-Content-Type-Options: nosniff
X-SourceFiles: =?UTF-8?B?RDpcU2l0ZXNcaWNhcnBldGlsZXMyXFdlYlxzaWduYWxyXHN0YXJ0?=
X-Powered-By: ASP.NET
X-Frame-Options: SAMEORIGIN
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: *
Access-Control-Allow-Headers: *
Date: Sun, 07 Jun 2020 10:31:35 GMT
Все равно радости нет - заголовки есть. Должна быть ошибка в веб-формах ASP. NET, IIS, SignalR (обратите внимание, что это НЕ MVC). Пора обновить этот сайт для этого клиента. В любом случае, никто больше не поддерживает веб-формы - он мертв.