Запросы на django api с помощью javascript с ошибкой CORS
У меня есть веб-приложение, которое уже много лет использует Django и Django Rest Framework. API используется приложением на питоне, и оно работает правильно:
import requests
response = requests.options(http://example.com/api/albums/)
200
{'name': 'Album List List', 'description': '', 'renders': ['application/json', 'text/html'], 'parses': ['application/json', 'application/x-www-form-urlencoded', 'multipart/form-data'], 'actions': {'POST': ....
Я обнаружил Svelte и хотел работать с этим API, но не смог:
let api_ = "http://example.com/api/albums/"
const getAlbums = async () => {
var response = await fetch(api, {
mode: 'cors', method: 'GET', headers: {
'Content-Type': 'application/json'}});
var result = await response.json();
return result.results;
Cross-Origin Request Blocked: The “Same Origin” policy does not allow viewing the remote resource located at http://example.com/api/albums/. Reason: The “Access-Control-Allow-Origin” CORS header is missing. Status Code: 200.
Я читал, что нужно установить django-cors-headers. но теперь у меня такая ошибка:
Моя версия Python - 3.10.12, Django - 5.1.2, Rest Framework - 3.12.4, и я установил дополнение Cors Unlocked под Firefox.
У кого-нибудь есть объяснение, почему с помощью python я имею доступ к api, а с помощью javascript - нет?
Спасибо за помощь.
Эта проблема ближе к проблеме совместимости. Убедитесь, что вы используете правильную версию django. Например, эти две версии совместимы django==4.2.9 djangorestframework==3.14.0