Это не проблема для CORS, поэтому не предлагайте обходных путей с плагинами браузера или изменений в коде сервера. Я просто хочу понять, почему ajax post работает, а fetch post - нет!
В настоящее время используется jQuery и ajax для получения и публикации. Создание почтового запроса от localhost с ajax работает без проблем с запросом, подобным следующему:
$.ajax({
type: 'POST',
url: 'https://api.example.com/endpoint',
cache: false,
data: {
moment: {
parameters: 'some params',
url: 'https://example.com',
caption: 'caption'
}
}
})
Я решил начать использовать fetch вместо ajax, но делать то, что «выглядит» как тот же запроспри извлечении из тех же условий локального хоста происходит сбой с сообщением об ошибке
Доступ к извлечению в 'http://api.example.com/endpoint' из источника' http://localhost' заблокирован политикой CORS: Ответ напредварительный запрос не проходит проверку контроля доступа: он не имеет статуса HTTP ok.
Запрос на выборку выглядит примерно так:
fetch('https://api.example.com/endpoint', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
cache: 'no-cache',
body: JSON.stringify({
moment: {
parameters: 'some params',
url: 'https://example.com',
caption: 'caption'
}
})
})
Я просто хочу понять, чтоJQuery делает, чтобы обойти это? Я искал источник на github и не вижу ничего особенного. Или это ограничения, добавленные в API выборки, которых нет у XMLHttpRequest?
РЕДАКТИРОВАТЬ:
На вкладке сети запрос ajax выглядит следующим образом:
General
Request URL: https://api.example.com/endpoint
Request Method: POST
Status Code: 200 OK
Remote Address: ip:80
Referrer Policy: no-referrer-when-downgrade
Headers
Accept: */*
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
DNT: 1
Referer: http://localhost/index.html?target=...
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36
Хотя запрос на выборку выглядит следующим образом:
General
Request URL: https://api.example.com/endpoint
Referrer Policy: no-referrer-when-downgrade
Headers
Content-Type: application/json
DNT: 1
Referer: http://localhost/index.html?target=...
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36
Добавление всех этих заголовков из ajax в запрос на выборку не имеет значения.