Согласно спецификациям выборки, похоже, что если указан Content-Type, который является одним из «application/x-www-form-urlencoded», «multipart/form-data» или «text/plain», и другие условия удовлетворены. тогда запрос POST не должен приводить к предварительному запросу. Однако на практике мне было трудно указать несколько заголовков для выборки таким образом, чтобы это не вызывало запрос OPTIONS для предварительной проверки.
экс 1.
fetch("https://differentsubodmain.example.com/api/resource", {
headers: {
"Content-Type": "text/plain, application/json",
Accept: "application/json"
},
method: "POST",
body: JSON.stringify({})
})
экс 2.
var myHeaders = new Headers();
myHeaders.append('Accept', 'application/json');
myHeaders.append('Content-Type', 'text/plain');
myHeaders.append('Content-Type', 'application/json');
fetch("https://differentsubodmain.example.com/api/resource", {
headers: myHeaders,
method: "POST",
body: JSON.stringify({})
})
экс 3.
fetch("https://differentsubodmain.example.com/api/resource", {
headers: [
["Content-Type", "application/json"],
["Content-Type", "text/plain"],
["Accept", "application/json"]
],
method: "POST",
body: JSON.stringify({})
})
Ни в одном из этих примеров не удается выполнить запрос без предварительного запроса, но указание любого из них только с "Content-Type": "text/plain", похоже, работает нормально. Однако пример здесь показывает, что оба они указаны в запросе, и предполагает, что это не должно вызывать предварительную проверку. Это просто проблема с разными реализациями браузера или я что-то упустил?
Оба способа работают в целом, однако ни один из них, похоже, не дает нам свободы действий в отношении требования предварительной проверки CORS.
Отвечает ли это на ваш вопрос? Почему в CORS нет предварительной проверки для запросов POST со стандартным типом контента



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Похоже, я не внимательно прочитал эту ссылку. Ниже приведен важный отрывок.
Warning. This intentionally does not use extract a MIME type as that algorithm is rather forgiving and servers are not expected to implement it.
If extract a MIME type were used the following request would not result in a CORS preflight and a naïve parser on the server might treat the request body as JSON
Похоже, мы в значительной степени ограничены типами пантомимы application/x-www-form-urlencoded, multipart/form-data или text/plain, чтобы избежать предварительных запросов для CORS.
Ссылка:
Имеет ли значение, что ваши заголовки являются объектом, а не массивом массивов, как в примере? Спецификации говорят, что это список, а не объект.