Заголовок CORS 'Access-Control-Allow-Origin' отсутствует [дубликат]

Чтобы изменить содержимое поля файла, вы должны передать экземпляр объекта File django в FileField.save() . Он немного отличается от других типов полей модели.

FieldFile.save (name, content, save = True)

Этот метод принимает имя файла и содержимое файла и передает их классу хранения для поля, а затем ассоциирует сохраненный файл с полем модели. Если вы хотите вручную связать данные файла с экземплярами FileField в своей модели, метод save () используется для сохранения данных файла.

blockquote>
from PIL import Image
from django.core.files.base import ContentFile

if instance.image:
    im = Image.open(instance.image)
    im.thumbnail((220, 130), Image.ANTIALIAS)
    thumb_io = BytesIO()
    im.save(thumb_io, im.format, quality=60)
    instance.image.save(im.filename, ContentFile(thumb_io.get_value()), save=False)
instance.save()

Но если вы не используете удаленный файловой системы, вы можете просто перезаписать сам файл. Файл был создан при вызове form.save(). Поскольку вы используете одно и то же имя файла и местоположение, вам действительно не нужно прикасаться к модели или сообщать django, что вы возитесь с самим файлом.

if instance.image:
    im = Image.open(instance.image)
    im.thumbnail((220, 130), Image.ANTIALIAS)
    im.save(im.filename, quality=60)

40
задан Mayank Modi 7 July 2015 в 18:09
поделиться

5 ответов

в вашем запросе ajax, добавив:

dataType: "jsonp",

после строки:

type: 'GET',

должен решить эту проблему ..

надеюсь, что эта помощь вам поможет

8
ответ дан Pegasus Cozza 24 August 2018 в 18:26
поделиться

У вас должна возникнуть идея, почему вы получаете эту проблему после прохождения вышеупомянутых ответов.

self.send_header('Access-Control-Allow-Origin', '*')

Вам просто нужно добавить указанную выше строку на стороне вашего сервера.

0
ответ дан Raghvendra Singh 24 August 2018 в 18:26
поделиться

Вы должны изменить код вашей серверной части, как указано ниже

public class CorsResponseFilter implements ContainerResponseFilter {
@Override
public void filter(ContainerRequestContext requestContext,   ContainerResponseContext responseContext)
    throws IOException {
        responseContext.getHeaders().add("Access-Control-Allow-Origin","*");
        responseContext.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");

  }
}
2
ответ дан Ritesh Kumar 24 August 2018 в 18:26
поделиться

Это происходит, когда вы пытаетесь получить доступ к ресурсам другого домена.

Это функция безопасности, позволяющая избежать свободного доступа к любым ресурсам этого домена (к которым можно получить доступ, например, для получения точной копии ваш сайт в пиратском домене.)

Заголовок ответа, даже если он 200OK не позволяет другим источникам (доменам, портам) обращаться к ресурсам ressources.

Вы можете исправить эта проблема, если вы являетесь владельцем обоих доменов:

Решение 1: через .htaccess

Чтобы изменить это, вы можете записать это в .htaccess запрошенного файла домена:

    <IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
    </IfModule>

Решение 2: установите заголовки правильным способом

Если вы установите это в заголовок ответа запрошенного файла, вы разрешите всем получить доступ к ресурсам ressources:

Access-Control-Allow-Origin : *

ИЛИ

Access-Control-Allow-Origin : http://www.my-domain.com

Мир и код;)

29
ответ дан Sébastien Garcia-Roméo 24 August 2018 в 18:26
поделиться

Ваш браузер не разрешает ваш запрос .. вам нужно установить аддон вашего веб-браузера

Для Chrome: https://chrome.google.com/webstore/detail/allow-control- allow-origi / nlfbmbojpeacfghkpbjhddihlkkiljbi? hl = ru

Для Firefox https://addons.mozilla.org/en-US/firefox/addon/cors-everywhere/

-11
ответ дан Sourav Golui 24 August 2018 в 18:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: