Насколько я понимаю, браузер отправляет предварительный запрос, если любое из следующих условий ложно (источник: https://developer.mozilla.org/en-US)./docs/Web/HTTP/CORS#Simple_requests):
- Метод запроса — GET, HEAD или POST.
- Пользовательские заголовки не устанавливаются.
- Значение заголовка Content-Type:
application/x-www-form-urlencoded
,multipart/form-data
илиtext/plain
.
У меня есть веб-приложение, которое отправляет запрос GET на сервер из другого источника. Поскольку я должен отправлять файлы cookie на сервер, для свойства withCredentials
установлено значение true
. Заголовок Content-Type
установлен на application/json
. Для этого запроса браузер не запускает предварительный запрос, но должен, потому что третье условие ложно. Что может быть причиной этого? Имеет ли это какое-то отношение к незначительности заголовка Content-Type
для запроса GET (поскольку тела запроса нет)?
РЕДАКТИРОВАТЬ: добавление кода запроса:
configObject = {
'withCredentials': true,
headers: {
'Content-Type': 'application/json'
}
};
function getRequest(url, dict) {
$http.get(url, Object.assign({}, configObject)).success(function(result) {
// on success
}).error(function(err) {
// on error
});
// return
}