API Django и Reactjs 401 Forbidden
Я установил Django backend, который получает вызовы от react js frontend. Они развернуты на двух отдельных серверах. Мои пользователи могут войти в систему и получить токен, который, как я вижу, хранится в браузере должным образом. Эта функциональность работает просто отлично. Однако, когда я делаю вызовы (кроме входа в систему) к бэкенду, я получаю ошибку 401 unauthorized. Чтобы проверить функциональность, я создал базовый запрос, который в ReactJS выглядит следующим образом.
//Axios variables required to call the predict API
let headers = { 'Authorization': `Token ${props.token}` };
let url = settings.API_SERVER + '/api/test/predict/';
let method = 'post';
let config = { headers, method, url, data: irisFormData };
//Axios predict API call
axios(config).then(
res => {setPrediction(res.data["Predicted Iris Species"])
}).catch(
error => {alert(error)})
Примечание:. setPrediction() - это просто состояние реакции.
Это связанное представление на бэкенде.
class IRIS_Model_Predict(APIView):
authentication_classes = [TokenAuthentication]
permission_classes = [IsAuthenticated]
def post(self, request, format=None):
data = request.data
keys = []
values = []
for key in data:
keys.append(key)
values.append(data[key])
X = pd.Series(values).to_numpy().reshape(1, -1)
loaded_mlmodel = PredictionConfig.mlmodel
y_pred = loaded_mlmodel.predict(X)
y_pred = pd.Series(y_pred)
target_map = {0: 'setosa', 1: 'versicolor', 2: 'virginica'}
y_pred = y_pred.map(target_map).to_numpy()
response_dict = {"Predicted Iris Species": y_pred[0]}
return Response(response_dict, status=200)
Мое предположение - headers = { 'Authorization': Token ${props.token}
}; не передается должным образом в бэкенд, но у меня это внутри конфигурации для вызова axios, поэтому я не совсем уверен, в чем проблема.
У меня также есть эта настройка для cors origins
CORS_ALLOWED_ORIGINS = [
'https://example.com',
'https://www.example.com',
]
Примечание: example.com заменен на правильный URL моего сайта