Запросы на 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

Вернуться на верх