Проблема нарезки является серьезной, поскольку это может привести к повреждению памяти, и очень сложно гарантировать, что программа не пострадает от нее. Чтобы разработать его из языка, классы, поддерживающие наследование, должны быть доступны только по ссылке (не по значению). Язык программирования D имеет это свойство.
Рассмотрим класс A и класс B, полученный из A. Повреждение памяти может произойти, если в A-части есть указатель p и экземпляр B, который указывает p на дополнительные данные B , Затем, когда дополнительные данные удаляются, p указывает на мусор.
Ответы здесь неоднозначны, намекая на определенные настройки кода и т. д., которые могут решить проблему перенаправления с помощью CORS, но спецификация CORS четко указывает, когда такие переадресации CORS будут сбой / пропуск: согласно спецификации браузеры должны
Если перенаправление вручную флаг отменяется, и ответ имеет код состояния HTTP из 301, 302, 303, 307 или 308. Примените шаги перенаправления
blockquote>
- Не разрешайте перенаправление 3XX, если запрос для перенаправленного ресурса требуется предварительная проверка. См. https://www.w3.org/TR/cors/#cross-origin-request-with-preflight-0
Если ответ имеет код состояния HTTP из 301, 302, 303, 307 или 308. Примените шаги кэша и сетевой ошибки.
blockquote>Я изучил различные сценарии CORS в github repo: https : //github.com/monmohan/cors-experiment .
Эта конкретная проблема с неудачной переадресацией также может быть легко воспроизведена изолированно с помощью пакета: https: // github .com / monmohan / CORS-эксперимент / дерево / ведущий / выпуск
Если код статуса 302 получен в ответ на запрос, отличный от GET или HEAD, пользовательский агент НЕ ДОЛЖЕН автоматически перенаправлять запрос, если он не может быть подтвержден пользователем, поскольку это может изменить условия, при которых был отправлен запрос.
blockquote>
Я нашел это сообщение о , чтобы установить правильный заголовок CORS для контроля доступа-Разрешить-Происхождение на ваш ответ 302 , чтобы быть полезным, по крайней мере, в моем случае с аналогичным звучанием.
Исследование проблемы показало, что его XHR не приземлялся на URL с поддержкой CORS напрямую, но перенаправлялся к нему через HTTP 302 (перенаправление).
Так что имейте в виду, что URL-адрес перенаправления должен также включать заголовок Access-Control-Allow-Origin, иначе браузер остановится там с его попыткой междоменного запроса.
blockquote>также установили, что установка дополнительных заголовков CORS выше и выше Access-Control-Allow-Origin часто приводит к отмене транзакции.
Access-Control-Allow-Origin
. Вы сказали, что дополнительные заголовки ответа могут привести к аннулированию? Можете ли вы объяснить это немного больше или привести примеры того, какие заголовки вызывают это?
– Matthias Dailey
19 November 2013 в 23:13
У меня также возникла проблема, когда Chrome не выполнял переадресацию запроса CORS. Для меня проблема заключалась в том, что используемая JS-инфраструктура (Sencha Touch) добавляет заголовок запроса: X-Requested-With: «XMLHttpRequest»
Как только я удалил это (в Sencha Touch, вызвав Ext .Ajax.setUseDefaultXhrHeader (false);) он работал как шарм.
Не знаю, почему, но я надеюсь, что эта информация поможет кому-то.