有关ajax img加载的CORS策略问题(Django)

时间:2019-03-04 08:27:49

标签: django django-cors-headers

在ajax加载中,image_url包含https链接。因此,https访问没有问题。 但是当我访问http上的同一页面时,我得到了

  “ HTMLCanvasElement”上的

toDataURL”:受污染的画布可能不会导出。

我做了一些谷歌搜索,而这正是我尝试过的。

  1. 在img上设置属性

    img = new Image();
    img.crossOrigin = 'anonymous';
    img.onload = some func;
    img.src = some src;
    
  2. Django set corshead

    INSTALLED_APPS = [ ... 'corsheaders', ]
    
    MIDDLEWARE_CLASSES = (
        'corsheaders.middleware.CorsMiddleware', 
        ...
    )
    
    CORS_ORIGIN_WHITELIST = (
        'example.com',
        ### tried ###
        ### 'http://example.com', 'https://example.com'
    )
    ### also tried ###
    CORS_ORIGIN_ALLOW_ALL = True
    CORS_ALLOW_CREDENTIALS = False
    
  3. django设置x_frame_options

    X_FRAME_OPTIONS = 'ALLOW-FROM https://example.com/'
    
  4. 手动在views.py上添加标题

    def retrieve(self, request, pk=None):
        ...
        response = Response(serializer.data)
        response["Access-Control-Allow-Origin"] = "*"
        return response
    

没有任何效果。我想念什么?

我打算在nginx上将http重定向到https(存在一些问题,这需要时间。)

除此之外,如何避免跨源问题? 预先感谢。

0 个答案:

没有答案