IIS прерывает запросы REST API CORS со статусом 500… только для одного URI

Первоначально я спрашивал об этом при переполнении стека, но сегодня утром мне пришло в голову, что этот вопрос лучше подходит для сбоя сервера...


Я использую AJAX для выполнения запросов CORS к API, но вижу действительно странное поведение: отслеживание моих кликов (запрос OPTIONS перед полетом) всегда прерывается IIS и возвращает 500, прежде чем запрос будет передан приложению.

Для сравнения, вот рядом с ошибочным запросом (слева) и успешным запросом (справа), как видно из инспектора запросов Firefox (нажмите для просмотра в полном размере)...

пример плохих (слева) и хороших (справа) запросов CORS перед полетом запросов http://note.io/14XuOkq

Обратите внимание, что оба эти запроса автоматически генерируются предполетными запросами, созданными jQuery (1.8.3), которые попадают на один и тот же сервер с одной и той же страницы, с разницей в несколько секунд. Множество других запросов работают нормально и продолжают работать нормально после неудачного запроса OPTIONS для /click, Но каждый запрос на /click терпит неудачу таким же образом.

Предполетный полет для /click не удается из-за отсутствия ACCESS-CONTROL-ALLOW-HEADERS заголовок ответа; но если бы IIS разрешил приложению отвечать на запрос, он был бы включен и отвечал бы со статусом 200 (точно так же, как тот, что справа)...

Я не могу понять, почему IIS будет это делать.

Следует отметить, что API не всегда включал ACCESS-CONTROL-ALLOW-HEADERS заголовок ответа. Я только недавно добавил, что, возможно, мы смотрим на результат чего-то застрявшего в кеше. Тем не менее, я попробовал как в Firefox, так и в Chrome, и сделал "удалить все, что сохранило все до начала времени" в обоих случаях, так что теоретически это не должно кэшироваться, верно?

Я также попытался изменить URI на /click2 в целях тестирования, после исправления проблемы заголовков, поэтому теоретически это не должно быть проблемой кеширования для этого URI, если это для другого. Однако проблема сохраняется и с этим новым URI.

Есть ли какие-то дополнительные журналы, которые я могу включить в IIS, чтобы выяснить, в чем проблема? Настройки я должен проверить? Какая-то известная проблема? Я в полной растерянности, здесь...

1 ответ

Я вижу, что ошибочный запрос является запросом POST.

Настройте ваши МЕТОДЫ ДОСТУПА-КОНТРОЛЯ-РАЗРЕШЕНИЯ, чтобы включить POST.

Это должно исправить вашу проблему

Другие вопросы по тегам