Я предпочитаю топор ios вместо fetch из-за его простоты и удобства использования. Я использую локальный dev-сервер, который отправляет AJAX запросов на удаленную конечную точку. Запрос блокируется из-за той же политики источника. Поэтому я изменил свою конфигурацию веб-пакета следующим образом:
devServer: {
headers: {
'Access-Control-Allow-Origin': '*',
},
},
Теперь, если я использую fetch для выполнения запросов API, я добавляю "mode": "no-cors"
, чтобы разрешить запросы с разными источниками, и все работает нормально. Однако это не работает с топором ios.
, тогда как выборка основана на API запроса , который позволяет указывать режим: "no-cors", топор ios основан на XHR, который не поддерживает указание режима. Я могу обойти эту проблему, открыв небезопасное окно chrome, запустив chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security
, где --user-data-dir
- это некоторый путь моей файловой системы. Однако небезопасный экземпляр chrome не позволяет запускать расширения, поэтому я не могу использовать React и Redux DevTools. Вот фрагмент кода, который использует fetch и ax ios для выполнения запросов. Вызов fetch работает, когда ax ios не работает:
componentDidMount() {
fetch(someAPIEndpoint, {
mode: 'no-cors',
})
.then(response => console.log(response))
.catch(error => console.error(error))
axios
.get(someAPIEndpoint, {
mode: 'no-cors',
})
.then(results => console.log(results))
.catch(error => console.error(error))
}
Использование прокси-сервера также невозможно в моей ситуации. Есть ли другой обходной путь в коде, чтобы я мог использовать топор ios и обойти эту проблему. Заранее спасибо !!!