Итак, я пытаюсь сделать запрос на выборку, чтобы получить данные до загрузки компонента, используя componentWillMount, но он продолжает выдавать ошибку
Access to fetch at 'http://localhost:5000/mine/1/user_list' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
Теперь я попробовал все решения, предложенные в другом связанном вопросе. Я пытался установить в заголовке параметр «Allow-CORS». Также у меня есть инструмент Google Chrome, который включает CORS, и он уже включен. Кроме того, я также попытался сохранить параметр в запросе на выборку в режиме.
Но это не работает. Интересно то, что если я пытаюсь использовать постоянный URL (например, http://locahost:5000/maintenance/company/fetch), запрос проходит нормально без каких-либо проблем. Однако, когда я использую пользовательский путь URL, как показано ниже (http://localhost:5000 + "мой / "+ activeSite +" / user_list ";) затем начинается проблема. Я приложил небольшой фрагмент кода для вашей справки.
Мой бэкэнд находится в Python3 flask-restplus. Он не получает запрос на бэкэнд. Ошибка выдается еще до того, как она сделает запрос на выборку. Мой контроллер не имеет такой политики для CORS на бэкэнде. Но я предполагаю, что если другой запрос работает нормально в приложении, он должен работать без использования этой политики в серверной части Также я проверил функцию с Swagger-UI, и она отлично работает.
import React, { Component } from "react";
import Select from "react-select";
import { serverConst } from "../constants/system";
import { getAuthHeader } from "../helper/authHeader";
class TaskForm extends Component {
constructor(props) {
super(props);
this.state = {
assigned: "",
assigner: [],
reporter_list: [],
operationSucceed: false,
error: ""
};
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
componentWillMount() {
let activeSite = localStorage.getItem("activeMinesite");
if (activeSite) {
const request_url = serverConst.SERVER_URL + "mine/" + activeSite + "/user_list";
fetch(request_url, {
method: "GET",
mode: "cors",
headers: getAuthHeader()
}).then(response => {
response.json().then(json => {
console.log(response);
});
});
}
}